2017-11-03 4 views
1

アンドロイドスタジオにインポートされたsvgアイコンがあります。背景としてsvgリソースを使用してImageButtonに動的な色を与えます。

svgは基本的にハードコードされた色の心臓です。

この心臓の色をRGB値に動的に設定したいと考えています。

しかしImageButtonには、カラーリソースのみを取るColorStateListをとる「setBackgroundTint」メソッドしかありません。

Color.rgb()を使用して画像の色を設定する方法はありますか?

+0

'ColorStateList'が静的メソッドを持っている['のvalueOf(INT色) '](https://developer.android.com/reference/android/content/res/ColorStateList.html#valueOf(例えば: int))、単一色の 'ColorStateList'を返します。 –

+0

私はvalueOfがカラーリソースでなければならないと思いますか?どのように色がintになることができますか? – user1017674

+0

"私はvalueOfがカラーリソースでなければならないと思いますか?" - いいえ、単なる色の価値。 "どのように色がintになることができますか?" - あなたは 'Color.rgb()'が返すと思いますか? –

答えて

1

ColorStateListクラスは、Color.rgb()と一緒に使用して単一色のColorStateListを得る静的メソッドvalueOf(int color)を持っています。

ColorStateList tint = ColorStateList.valueOf(Color.rgb(255, 0, 255)); 
imageView.setBackgroundTintList(tint);