【问题标题】:Creating State List Drawable XML for Background - Android为背景创建状态列表可绘制 XML - Android
【发布时间】:2011-11-11 02:03:22
【问题描述】:

我正在尝试使以下状态列表起作用。这个想法是创建一个白色背景。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_selected="true"         
android:drawable="@android:color/transparent" /> 
<item android:state_selected="true" android:drawable="@android:color/transparent" /> 
<item android:state_pressed="true" android:state_selected="false"    
android:drawable="@android:color/transparent" /> 
<item android:state_selected="false" android:drawable="@color/WHITE" /> 
</selector>

当我尝试编译它时,我收到以下错误..

@color/transparent and @color.WHITE don't exist.

我需要在某处定义这些吗?如果需要,如何定义?

谢谢!

【问题讨论】:

  • @color/transparent 作为@android:color/transparent 存在。

标签: java android xml layout colors


【解决方案1】:

我认为唯一的问题是您直接引用颜色而不是实际的Drawable。尝试先创建一个ColorDrawable 并在您的StateListDrawable 中使用它。

当创建ColorStateList(不同于StateListDrawable,因为它是颜色列表而不是Drawables)时,您可以直接使用颜色...

【讨论】:

    【解决方案2】:

    你必须使用@android:color,否则它不知道颜色是在哪里定义的。

    android:background="@android:color/white"
    

    【讨论】:

      【解决方案3】:

      在 Android 的调色板中没有定义透明 Android Color Palette,但是您可以定义不透明度,这将产生透明感,这是一个关于如何使用它的好示例:Hex transparency in colors

      这是一个关于如何在 res/value/colors.xml 中声明自定义颜色的代码片段

      &lt;color name="colorWhite"&gt;#FFFFFF&lt;/color&gt;

      现在有了透明度:

      &lt;color name="colorWhite"&gt;#FFFFFFFF&lt;/color&gt;

      在状态列表中使用:

      <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:drawable="@color/colorWhite" android:state_hovered="true"/>
      </selector>
      

      【讨论】:

        【解决方案4】:

        尝试像这样创建一个资源文件:

        <?xml version="1.0" encoding="utf-8"?>
        <resources>
        <color name="white">#ffffff</color>
        </resources>
        

        让我们看看是否有人知道透明的

        【讨论】:

          【解决方案5】:
          <color name="white">#aarrggbb</color> will set the transparency
          <color name="white">#80ffffff</color> will set white color with transparency value 80.
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多