在布局中我使用一个按钮,我将其textColor设置为drawable,如下所示:
@ drawble / text_color_drawable:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- disabled state --> <item android:state_enabled="false" android:color="@color/disabled_text_color" /> <item android:color="@color/main_text_color"/> </selector>
@ color / main_text_color:
<color name="main_text_color">#9797A3</color>
但是当我使用这个名为text_color_drawable的drawable作为textColor时:
机器人:文字颜色= “@绘制/ text_color_drawable”
我得到一个异常:渲染期间引发异常:颜色值text_color_drawable必须以#开头
难道我做错了什么 ?
谢谢
解决方法
问题可能是@ drawble / text_color_drawable:它不应该是’drawable’,而是a
‘颜色’.基本上你现在拥有的是
‘颜色’.基本上你现在拥有的是
StateListDrawable
,但你真正想要的是
ColorStateList
.两者都非常相似,但生活在资源的不同位置.
话虽这么说,尝试将文件从res / drawable移动到res / color.当您将资源指定为文本颜色时,它应该说:android:textColor =“@ color / text_color_drawable”