具有颜色的可绘制状态(而非可绘制对象)

9
我希望为一个视图设置背景颜色,并具有以下行为:当视图被按下时,背景应为绿色,否则为黑色。
此选择器有效。
<?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文件。如何使用颜色代码而不是drawable实现相同的行为?

谢谢

2个回答

14

只需使用颜色。参考文档:

颜色资源也可以在XML中用作可绘制项。例如,创建状态列表可绘制项时,您可以引用颜色资源作为android:drawable属性(android:drawable =“@ color / green”)的值。


使用 android:drawable="@color/green" 时,我收到了以下错误:未找到与给定名称匹配的资源(位于“drawable”处,值为“@color/green”)。 - Addev
1
你仍需要定义颜色。请跟随我提供的链接,点击“颜色资源”以查看如何完成此操作。 - goto10
1
当我声明一个颜色并将其用作背景时,它会崩溃 =( - Addev

4
您可以使用 颜色状态列表 来实现此功能,它与您发布的代码中的可绘制状态列表是相同的。您还可以创建一个 形状可绘制对象 并仍然使用上面使用的可绘制代码。

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