close
今天有一個需求是要隨著使用者的不同而給予不同顏色的 ui
比如說一個「地球」的小 icon
管理者要給紅色
一般帳號要給綠色
但有時候會有節省 apk 大小的考量,盡量減少圖檔資源
所以我們只有一張 Drawable 可以用的時候該怎麼辦呢?
其實 Drawable 有個功能是 Filter
沒錯,就是我們很常使用的相機修圖濾鏡的感覺
drawable.setColorFilter() 這個 method 就可以做到改變顏色
因為專案中滿多地方需要用的
我就將它寫在 Utils 類,方便使用
下面就上 code 啦
public static Drawable changeDrawableColor (Context context, int icon, int newColor) { Drawable mDrawable = ContextCompat .getDrawable(context, icon) .mutate(); mDrawable.setColorFilter( new PorterDuffColorFilter(newColor,PorterDuff.Mode.SRC_IN)); return mDrawable; }
其中的 ProterDuff.Mode 是精華所在
詳情看這篇
Android Drawable 的使用,各式 PorterDuff.Mode 介紹 』Willy's Fish教學筆記
文章標籤
全站熱搜
留言列表