如何为不同状态设置图像按钮背景图像? [英] How to set image button backgroundimage for different state?
问题描述
我想要两种状态的图像按钮 i) 正常 ii) 触摸(或点击).
I want imagebutton with two states i) normal ii) touch(or click).
我在 imagebutton 背景中设置了 normal 图像,我正在尝试更改 图像(按下)来自 onclick 方法,但它不会改变.
I have set normal image in the imagebutton background and I am trying to change image(pressed) from onclick method, but it doesn't change.
我希望如果我按下图像按钮,那么图像应该从正常变为按下,直到我按下其他按钮但它不会发生.
任何人都可以向我建议如何使用选择器或在运行时做到这一点?
Can anyone suggest to me how can I do this with selector or at run time?
这是我的图像按钮面板代码.
Here is my imagebuttonpanel code.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:gravity="bottom"
android:id="@+id/buttonpanel">
<ImageButton android:id="@+id/buttonhome"
android:layout_width="80dp"
android:layout_height="36dp"
android:focusable="true"
android:background="@drawable/homeselector">
</ImageButton>
<ImageButton android:id="@+id/buttonsearch"
android:layout_height="36dp"
android:layout_width="80dp"
android:background="@drawable/searchselector"
android:focusable="true">
</ImageButton>>
<ImageButton android:id="@+id/buttonreg"
android:layout_height="36dp"
android:layout_width="80dp"
android:background="@drawable/registerselector"
android:focusable="true">
</ImageButton>>
<ImageButton android:id="@+id/buttonlogin"
android:layout_height="36dp"
android:layout_width="80dp"
android:background="@drawable/loginselector"
android:focusable="true">
</ImageButton>
</LinearLayout>
而我的选择器 xml 是
and my selector xml is
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--<item android:state_pressed="true" android:drawable="@drawable/homehover"
/> <item android:state_focused="true" android:drawable="@drawable/homehover"
/> <item android:drawable="@drawable/home" /> <item android:state_window_focused="true"
android:drawable="@drawable/homehover" /> -->
<item android:state_enabled="false" android:drawable="@drawable/homehover" />
<item android:state_pressed="true" android:state_enabled="true"
android:drawable="@drawable/homehover" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/homehover" />
<item android:state_enabled="true" android:drawable="@drawable/home" />
</selector>
而且我还尝试在 ontouch 和 onclick 事件上更改图像资源,但没有帮助.
And I have also tried to change image resource on ontouch and onclick event, but it does not help.
推荐答案
像这样在你的 drawable 中创建一个 xml 文件:
Create an xml file in your drawable like this :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/btn_sendemail_disable" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/btn_send_email_click" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/btn_sendemail_roll" />
<item
android:state_enabled="true"
android:drawable="@drawable/btn_sendemail" />
</selector>
并相应地设置图像,然后将此 xml 设置为 imageButton
的背景.
And set images accordingly and then set this xml as background of your imageButton
.
这篇关于如何为不同状态设置图像按钮背景图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!