背景として ShapeDrawable を持つビューがあり、他の部分 (「ストローク」など) を変更せずに、Drawable の背景色 (「ソリッド」部分) のみを変更できるようにしたいと考えています。それを達成する方法はありますか?ありがとう。
2 に答える
0
setColorFilter()はどうですか。
これをinvalidate()と組み合わせて使用すると、ドローアブルが再描画されます。これらのリンクを参照してください
また、スタック上の素敵な投稿に出くわしました。これも見てください。 Androidドローアブルの色を変更する方法
于 2012-06-01T10:48:23.350 に答える
0
私は解決策を見つけました:実際に私の場合、ドローアブルをXMLファイルとして定義し、AndroidはそれをShapeDrawableではなくGradientDrawableオブジェクトに変換したので、それをRTT(ランタイムタイプ)にキャストし、それを使用しましたsetColor 関数:
GradientDrawable colorBackground=(GradientDrawable)currentColorView.getBackground();
colorBackground.setColor(color);
先ほど言ったように、GradientDrawable でしか機能しないので、他のドローアブル タイプの場合は、別の方法を探す必要があります。
于 2012-06-02T16:14:01.377 に答える