2016-11-14 62 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在哪裏? –