[備忘録]Android:Drawableの色合いを動的に変更する
Androidにて、背景などのDrawableリソースの色合いをコード上で動的に変更したい場合が結構あります。
この場合はDrawableCompatを使って実現できるため、コード例を備忘録として記載します。
// Drawableの色合いを変更
// 例:任意のView背景の色合いを赤に変更
DrawableCompat.setTint(view.background, Color.RED)
// 乗算やオーバーレイなど、色合いの計算方式は同様にDrawableCompatで指定可能
// 例:計算方式を乗算に指定
DrawableCompat.setTintMode(view.background, PorterDuff.Mode.MULTIPLY)
PorterDuff.Modeは、Drawableの色合い変更だけではなく様々な描画の際に指定することができますが、種類が多くわかりづらいものも存在します。
それぞれのModeについてはPorterDuff.Modeの説明にある図解と計算式が記載されていますので、そちらも参考に。