android – 将Drawable设置为文本颜色引发异常’颜色值必须以#开头’

前端之家收集整理的这篇文章主要介绍了android – 将Drawable设置为文本颜色引发异常’颜色值必须以#开头’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在布局中我使用一个按钮,我将其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”

猜你在找的Android相关文章