为背景创建状态列表可绘制XML - Android

时间:2011-09-06 07:13:26

标签: java android xml layout colors

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

<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.

我是否需要在某处定义这些?如果是这样的话?

谢谢!

5 个答案:

答案 0 :(得分:1)

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

创建ColorStateList(与StateListDrawable不同,因为它是一个颜色列表而不是Drawable s),您可以直接使用颜色...

答案 1 :(得分:1)

您必须使用@android:color,否则它不知道颜色的定义位置。

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

答案 2 :(得分:1)

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

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

<color name="colorWhite">#FFFFFF</color>

现在有了透明度:

<color name="colorWhite">#FFFFFFFF</color>

在州名单中使用:

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

答案 3 :(得分:0)

尝试创建这样的资源文件:

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

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

答案 4 :(得分:0)

<color name="white">#aarrggbb</color> will set the transparency
<color name="white">#80ffffff</color> will set white color with transparency value 80.