首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过XML淡色Android矢量菜单图标

通过XML淡色Android矢量菜单图标
EN

Stack Overflow用户
提问于 2016-07-12 12:03:19
回答 1查看 1.5K关注 0票数 5

我读过答案和博客文章,解释了安卓系统中的VectorDrawables,以及如何使用它们来代替不同像素密度的PNG文件。

我已经看到,有一个android:tint XML属性可以用于ImageButton和类似的View,但我希望能够对用作菜单项的矢量图标应用一种颜色,因为您无法在菜单项上使用android:tint

一篇博客文章解释说,有颜色的绘图可以创建如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_action_something"
    android:tint="@color/color_action_icons_tint"/>

上面的XML文件是可着色的,通过src引用的可绘制是原始向量(黑色),而tint是图标将被着色的颜色。

但是,上面的内容对我不起作用,给出了以下错误:

代码语言:javascript
复制
android.content.res.Resources$NotFoundException: File res/drawable/ic_chevron_left_white_24dp.xml from drawable resource ID #0x7f02007e
    at android.content.res.Resources.loadDrawableForCookie(Resources.java:3735)
    at android.content.res.Resources.loadDrawable(Resources.java:3603)
    at android.content.res.Resources.getDrawable(Resources.java:1852)
    at android.content.Context.getDrawable(Context.java:408)
    at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:26)
    at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:352)
    at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193)
    at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:181)
    at ...
 Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: <bitmap> requires a valid src attribute
    at android.graphics.drawable.BitmapDrawable.updateStateFromTypedArray(BitmapDrawable.java:761)
    at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:726)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1150)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1063)
    at android.content.res.Resources.loadDrawableForCookie(Resources.java:3719)
    at android.content.res.Resources.loadDrawable(Resources.java:3603) 
    at android.content.res.Resources.getDrawable(Resources.java:1852) 
    at android.content.Context.getDrawable(Context.java:408) 
    at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:26) 
    at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:352) 
    at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:193) 
    at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:181) 
    at ...

编辑:,这是我的可绘图ic_chevron_left_white_24dp.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_chevron_left_black_24dp"
    android:tint="@color/white"/>

上面的文件和引用的文件都存在。

此外,使用上面的内容,我的IDE (Android )显示了以下警告:

呈现问题:需要有效的“src”属性

这就引出了一个问题--我如何才能将XML向量绘制成菜单图标呢?

我知道我可以创建一个向量的副本,并将fillColor属性更改为我想要的颜色,但是除此之外,有没有一种非编程的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2019-04-03 11:52:10

目前这是不可能的。请考虑一下这个特征请求主演的安卓问题跟踪器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38328390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档