安卓:点击按钮后更改背景颜色

5
问题:我想在按钮被按下后更改其背景颜色。
这是一个简单的问题,但我花了很多时间在谷歌上搜索,似乎找不到解决方案。它们都涉及到下面出现的相同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>

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

你们有什么提示和/或指针可以帮助我吗?


它被点击后应该返回到正常状态。如果您希望它永久停留在已点击的状态,则必须使用下面Russ的答案。但是,如果您希望用户能够再次使用相同的动画单击它,则必须将背景资源设置回该XML文件。 - Cruceo
2个回答

4

在安卓中,UI的状态在事件完成后不会被持久保存。例如,在处理click事件并高亮显示该按钮后,它将在Up事件触发后返回到正常状态。因此,我所知道的唯一选择是通过设置不同的drawable资源来更改按钮的背景。

btn.setBackgroundResource(R.drawable.btn_selected_blue);

0
这个可以在您的onClick处理程序中工作:
button.setBackgroundResource(R.drawable.button_selected);

可能有更好的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接