Android开发:如何在Drawable的Vector XML文件中通过ID引用colors.xml中的颜色值
解决Android矢量图引用自定义颜色的问题
嘿,别着急,我来帮你搞定这个颜色引用的问题!
你之前试的几种写法都不对,正确的引用自定义颜色的方式是**@color/input_lines**,下面给你解释下为啥之前的写法不行:
@android:color/input_lines:这个前缀@android:是用来引用系统自带的颜色资源的,而你的input_lines是自己在colors.xml里定义的自定义颜色,所以用这个前缀找不到@colors/input_lines:Android资源引用里颜色对应的类型名称是color,不是colors,多了个"s"自然就失效了@android:R.color.input_lines:这种写法是Java/Kotlin代码里引用系统颜色的方式,在XML资源文件里根本不需要这么写,XML里直接用@资源类型/资源名称的格式就够了
给你举个实际的例子,假设你的矢量图image.xml里有个路径需要用到这个颜色,写法应该是这样的:
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> <!-- 这里用@color/input_lines引用你的自定义颜色 --> <path android:fillColor="@color/input_lines" android:pathData="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/> </vector>
另外还要确认下你的colors.xml是放在res/values/目录下的,而且颜色名称input_lines没有拼写错误哦,这样就能顺利引用到你定义的#ffffff颜色了。
内容的提问来源于stack exchange,提问作者Sunnyshechka
相关产品推荐
相关产品推荐

