您的位置:首页 > 移动开发 > Android开发

Exception android.content.res.Resources$NotFoundException: File res/drawable/my.xml from drawable re

2016-06-23 20:13 549 查看
#AndroidStudio使用问题总结

1. 使用选择器改变字体颜色。

新建selector来控制RadioButton的字体颜色时,出现错误。

错误描述:

XML文档配置如下:

<RadioButton
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/contacts_icon_selector"
android:gravity="center"

android:text="Contacts"
android:textColor="@drawable/font_color_selector" />


通过触发checked改变,来完成字体的变化。

配置的选择器文档如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@android:color/darker_gray"
android:state_checked="true" />
<item android:drawable="@android:color/holo_blue_dark"  />

</selector>


安装到测试机上时,打开APP就直接报错。关键错误信息如下

stactTrace (logcat):

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/font_color_selector.xml from color state list resource ID #0x7f02003d

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #4: <item> tag requires a 'android:color' attribute.


通过在网上查询,在stackoverflow发现类似问题,

http://stackoverflow.com/questions/17701186/exception-android-content-res-resourcesnotfoundexception-file-res-drawable-my

按照上面网址网友的提示,依旧没有解决问题。

思考良久。书写selector时,studio会自动补出书写drawable的命令。但是对我们想要改变的color未进行提示。

根据上诉错误提示,讲color的属性,直接写在该标签内,最后完美解决问题。

修改的selector代码如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:color="@color/rb_blue_dark" android:drawable="@android:color/darker_gray"
android:state_checked="true" />
<item android:color="@color/rb_blue" android:drawable="@android:color/holo_blue_dark"  />

</selector>


上面代码中。在定义字体颜色的时候,发挥真正效果的只有

android:color="@color/rb_blue"


android:drawable="@android:color/holo_blue_dark"
是不产生任何效果的。(但不能删除。因为是drawableSelector)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android radio button