遇到这个错误的场景是我像给View设置背景,要求在点击的时候背景颜色改变
起初我在res下面新建了一个color文件夹写了一个资源文件如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/orange"/>
<item android:state_pressed="false" android:color="@color/white"/>
<item android:color="@color/white" />
</selector>
布局文件做如下设置:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="48dp"
android:textSize="16sp"
android:gravity="center"
android:background="@color/car_types_click_bg_selector"
android:textColor="@color/car_types_click_click_selector">
</TextView>
运行时就会在background这句抛出异常,原因是因为View的背景图片不支持颜色选择器
那么我们一定要用color设置背景的时候怎么做呢?
如下修改:
我在values下新建了一个xml文件存放我要设置背景的颜色
<resources>
<drawable name="orange">#ec6933</drawable>
<drawable name="white">#ffffff</drawable>
</resources>
然后修改背景色的xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/orange"/>
<item android:state_pressed="false" android:drawable="@drawable/white"/>
<item android:drawable="@drawable/white" />
</selector>
然后将这个文件丢在drawable目录下
设置背景色为
android:background="@drawable/car_types_click_bg_selector"
就行了.