我想为ImageButton创建效果。例如,单击时会改变颜色......我是怎么做到的?我想在.xml文件中执行此操作。你能帮助我吗!谢谢! 我尝试创建state.xml文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/btn_0" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/btn_ac" />
</selector>
但是,我无法为ImageButton设置背景。像这样的错误:
答案 0 :(得分:2)
所有你需要做的就是将“android:background”attribut添加到你的ImageButton并设置一个drawable。
你的布局
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/my_btn"
android:background="@drawable/btn_drawable"/>
btn_drawable.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/blue"
/>
<item android:state_focused="true"
android:drawable="@drawable/white"
/>
<item android:drawable="@drawable/green" />
</selector>
在上面的代码中,当你按下ImageButton(state_pressed),聚焦(state_focus)或者什么时候正常(没有按下而没有聚焦)时,你设置一个不同的drawable。
Here您可以找到更详细的信息。
答案 1 :(得分:1)
创建如下所示的drawable并将其命名为btn_drawable
。
<?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_disable" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/btn_click" />
</selector>
这是一个例子,像这样你可以根据你的需要和图像按钮的状态添加<item/>
。
然后将drawable设置为图像按钮背景。
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_drawable"/>