我想在不使用OnTouchListener的情况下更改按钮的绿色背景。我有这样的情况:我在一个层中放置一些butons,然后在另一层中放置一层,在另一层中放置最后一层。当我触摸按钮时背景正在改变(我现在正在使用OnTouchListener)但是如果我将手指拖到按钮之外然后将其从屏幕上移开,按钮的背景将保持图像处于触摸时的状态(否则,如果我点击按钮并且按钮关闭按钮,那么背景正在变化)
答案 0 :(得分:17)
1。为按钮状态准备3张图片,并将其放入resource/drawable
文件夹。
2。在res/drawable/
文件夹中创建一个新的XML文件,无论您想要什么名称,在这种情况下,我们只需命名为my_button.xml
。该文件定义了哪个按钮状态属于哪个图像。
现在,您可以通过此ID参考此按钮:@ drawable / my_button。
文件:res / drawable / my_button.xml
使用my_button.xml
文件夹中的drawable
这样的按钮图像创建xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_pressed_yellow"
android:state_pressed="true" />
<item android:drawable="@drawable/button_focused_orange"
android:state_focused="true" />
<item android:drawable="@drawable/button_normal_green" />
</selector>
添加一个普通按钮,并通过
将背景图像附加到“my_button”上方android:background:@drawable/my_button
答案 1 :(得分:0)
选择器如下
<?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/btn_pressed" /> <!-- pressed -->
<item android:state_focused="true" android:drawable="@drawable/btn_focused" /> <!-- focused -->
<item android:drawable="@drawable/btn_default" /> <!-- default -->
</selector>