当我们需要更改按钮的背景图像时,我知道如何为按钮应用选择器。我还想在按下按钮时更改文本颜色。有没有类似的方法,比如创建选择器 xml 来做到这一点?我猜另一个选项是在 onclick 方法中更改文本颜色,但我想知道是否有其他方法或更好的方法来做同样的事情。
谢谢
我想,会改变 onclick 方法中的文本颜色
只需创建适当的选择器并将其分配给 TextView 颜色属性
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="true"
android:color="somecolor"
/>
<item
android:state_focused="false"
android:state_pressed="true"
android:color="somecolor"
/>
<item android:color="somecolor" />
</selector>
然后是一个用法:
android:textColor="@drawable/yourselector"
我们需要改变按钮的背景图片
仅在您将使用可绘制对象更改颜色属性的项目中,背景几乎相同。
可绘制/now_playing_next.xml
<?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/icon_down" />
<item android:state_pressed="false" android:drawable="@drawable/icon_up" />
</selector>
这里 icon_up 是正常状态背景图像, icon_down 是按下状态图像
接着
<Button
android:id="@+id/MediaNextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/now_playing_next" />
更改文本使用 OnClickListener
您可以将代码放在按钮的 setOnClickListener 中,在那里您可以为按钮设置所需的背景和文本或任何内容。希望这对您有所帮助。