Java 为后台创建状态列表可绘制XML-Android

Java 为后台创建状态列表可绘制XML-Android,java,android,xml,layout,colors,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" /> <it

我正在努力使以下状态列表正常工作。其想法是创建一个白色背景

<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和@color.WHITE不存在。

我需要在某个地方定义这些吗?如果需要,如何定义


谢谢

尝试创建如下资源文件:

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

#ffffff

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

我想唯一的问题是你直接引用了一种颜色,而不是实际的
可绘制的
。首先尝试创建一个
ColorDrawable
,并在您的
StateListDrawable
中使用它


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

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

android:background="@android:color/white"
AARGGBB将设置透明度 #80FFFF将设置透明度值为80的白色。
在Android的调色板中,没有定义透明 ,但是您可以定义不透明度,这将产生透明度,下面是一个关于如何使用它的好示例:

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

#FFFFFF

现在有了透明度:

#FFFFFFFF

正在状态列表中使用:

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

@color/transparent
作为
@android:color/transparent
存在。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorWhite" android:state_hovered="true"/>
</selector>