Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓更改按钮点击后的背景色_Android_Android Button - Fatal编程技术网

Android 安卓更改按钮点击后的背景色

Android 安卓更改按钮点击后的背景色,android,android-button,Android,Android Button,问题:我想更改按钮按下后的背景色 这是一个简单的问题,但我花了很多时间在谷歌上搜索,似乎找不到解决办法。它们都引用下面显示的相同XML 我的XML如下所示: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/black_button_pressed" android:state_focused="true" /&g

问题:我想更改按钮按下后的背景色

这是一个简单的问题,但我花了很多时间在谷歌上搜索,似乎找不到解决办法。它们都引用下面显示的相同XML

我的XML如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/black_button_pressed" android:state_focused="true" />
    <item android:drawable="@drawable/black_button_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/black_button_normal"/>
</selector>

因此,当一个人将鼠标悬停在按钮上时,它将显示为灰色。当一个人点击一个按钮时,按钮的背景应该在点击后变灰,但我似乎无法使它变灰。按下按钮后,它将返回正常状态

你们有什么建议可以帮我吗

这是有效的(在onClick处理程序中):


不过,可能还有更好的方法。

在android中,事件完成后UI的状态将不会持续。例如,您可以处理
按钮
单击
事件并高亮显示该按钮,但一旦启动Up事件,该按钮将返回正常状态。因此,据我所知,唯一的选择是,通过设置不同的
可绘制资源来更改按钮的背景

btn.setBackgroundResource(R.drawable.btn_selected_blue);

它应该在被点击后恢复到正常状态。如果你想让它永久保持点击状态,你必须使用下面Russ的答案。但是,如果希望用户能够使用相同的动画再次单击该XML文件,则必须将背景资源设置回该XML文件。
btn.setBackgroundResource(R.drawable.btn_selected_blue);