Android改變圖片背景顏色tint(着色)或 backgroundTint

安卓對圖標着色以節省apk體積,網上有很多介紹到的,使用也很簡單

<ImageView
    android:tint="@android:color/white"
    android:backgroundTint="@android:color/black"
    />

平時都這樣使用,今天得在代碼中改,所以記錄一下

第一種

Drawable icon;
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP){
    icon = getResources().getDrawable( R.drawable.ic_back_black );
}else{
    icon = getResources().getDrawable( R.drawable.ic_back_black ,getTheme());
}
ColorFilter filter = new LightingColorFilter( Color.WHITE, Color.WHITE);
icon.setColorFilter(filter);
image.setImageDrawable(icon);

第二種,需要V4包

Drawable icon1;
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP){
    icon1 = getResources().getDrawable( R.drawable.ic_back_black );
}else{
    icon1 = getResources().getDrawable( R.drawable.ic_back_black ,getTheme());
}
Drawable tintIcon = DrawableCompat.wrap(icon1);
DrawableCompat.setTint(tintIcon, Color.WHITE);
//DrawableCompat.setTintList(tintIcon, Color.WHITE);
titleBack1.setImageDrawable(tintIcon);

好吧,兩個都能實現.也不知道哪個更好.

網上有不少相關介紹

http://www.cnblogs.com/helloandroid/p/4779061.html

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0128/3923.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章