【问题标题】:Drawable states with colors (not drawables)带有颜色的可绘制状态(不是可绘制的)
【发布时间】:2012-01-07 01:10:55
【问题描述】:

我想为视图提供具有以下行为的背景颜色:按下视图时背景应为绿色,否则为黑色。

这个选择器有效

<?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 文件。我怎样才能达到相同的行为,但给颜色代码而不是可绘制的?

谢谢

【问题讨论】:

    标签: java android colors


    【解决方案1】:

    只使用颜色。来自docs

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

    【讨论】:

    • 使用 android:drawable="@color/green" 我收到以下错误:找不到与给定名称匹配的资源(在 'drawable' 处,值为 '@color/green')。
    • 您仍然需要定义颜色。按照我提供的链接并单击“颜色资源”以查看如何完成。
    • 当我声明一种颜色并将其用作背景时它会崩溃 =(
    【解决方案2】:

    您可以使用color state list 执行此操作,它们与您发布的代码中的可绘制状态列表相同。您也可以创建一个shape drawable 并仍然使用上面使用的可绘制代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 2020-09-21
      相关资源
      最近更新 更多