2016-11-14 60 views
2

我创建了一个矢量绘制:如何编程修改矢量绘制的颜色的Android

ic_item_overflow.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="24dp" 
    android:height="24dp" 
    android:viewportWidth="24.0" 
    android:viewportHeight="24.0"> 
<path 
    android:fillColor="#8b8b8b" 
    android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/> 

我想在2使用这种矢量绘制颜色:深灰色代码#8b8b8b和白色颜色:#FFFFFF

我在矢量dra中使用了深灰色代码wable文件,所以drawable将默认以这种颜色显示。 我已经改变了这个矢量绘制的颜色象下面这样:

Drawable drawable = ContextCompat.getDrawable 
(mContext, R.drawable.ic_item_overflow); 
DrawableCompat.setTint(drawable, ContextCompat.getColor(mContext, R.color.white)); 

这在所有的棒棒糖和后棒棒糖设备的情况下工作正常,但不能在prelollipop设备工作正常。我能做些什么来使这个工作在所有版本的android。

如果有人知道如何做到这一点,请帮助。先进的感谢很多。

+0

看到http://stackoverflow.com/a/36907312/2252830 – pskink

+0

这里改变颜色绘制一个漂亮的图书馆https://github.com/mathiazhagan01/DrawableColorChange – mikebertiean

回答

5

试试这个代码:

imageView.setColorFilter(ContextCompat.getColor(context, R.color.black), PorterDuff.Mode.SRC_IN); 
+0

的getColor ()已弃用 – David

+0

坦克编辑答案。 –

+0

该行使用的drawable在哪里? –