首页 > 解决方案 > 按钮更改颜色

问题描述

我在布局中有两个按钮,假设按钮 A 和按钮 B,我希望当用户触摸两个按钮中的任何一个时,它们的背景颜色应该在那一刻改变。

代码

``

<item android:state_hovered="true"
 android:drawable="@drawable/state_hovered"/>
<item android:state_pressed="true"
 android:drawable="@drawable/state_pressed"/>
<item android:drawable="@drawable/state_deafult" />

``

State_pressed 工作...但 state_hovered 不工作。所以,请提出一种方法。

提前致谢。

标签: androidandroid-studiobuttonandroid-widget

解决方案


按下按钮时改变颜色?

查看这个问题的答案,之前在 StackOverflow 中提出过

my_button_background.xml在drawable文件夹中创建一个文件:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true" android:drawable="@color/blue" />
   <item android:state_focused="true" android:drawable="@color/gold" />
   <item android:drawable="@color/grey" />
</selector>

并在布局文件中使用它:

android:background="@drawable/my_button_background"

并阅读更多关于Android 的 Color State 的信息。基本上,您可以将颜色、可绘制对象、形状等分配给不同的视图状态,例如启用、禁用、聚焦、单击等。


推荐阅读