我正在尝试使以下状态列表起作用。我们的想法是创建一个白色背景。
<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.
我是否需要在某处定义这些?如果是这样的话?
谢谢!
答案 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.