我想为视图提供一种背景颜色,其行为如下:按下视图时背景应为绿色,否则为黑色。
此选择器有效
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/green" android:state_pressed="true"/>
<item android:drawable="@drawable/black"/>
</selector>
但是为了做到这一点,我需要创建一个具有所需颜色的九个补丁3x3文件。我怎样才能达到相同的行为,但是给出了颜色代码而不是可绘制的?
由于
答案 0 :(得分:14)
只需使用颜色即可。来自docs:
颜色资源也可以用作XML中的drawable。例如,在创建状态列表drawable时,您可以引用android:drawable属性的颜色资源(android:drawable =“@ color / green”)。
答案 1 :(得分:4)
您可以使用color state list执行此操作,它们与您发布的代码中的可绘制状态列表相同。您还可以创建shape drawable并仍使用上面使用的可绘制代码。