私は奇妙な問題に遭遇しています... Drawableを色づけるためのコードをいくつか作っていますが、これはVectorアセットのすべてのAndroidバージョン資産。コードは以下の通りです:描画可能な色づきコードはPNGではなくベクターで動作します
public class TintHelper {
private Context mContext;
public TintHelper(Context context) {
mContext = context;
}
public Drawable getTintedDrawableFromResource(int resourceID, ColorStateList colorStateList) {
Drawable original = AppCompatDrawableManager.get().getDrawable(mContext, resourceID);
return performTintOnDrawable(original, colorStateList);
}
private Drawable performTintOnDrawable(Drawable drawable, ColorStateList colorStateList) {
Drawable tinted = DrawableCompat.wrap(drawable);
DrawableCompat.setTintList(tinted, colorStateList);
return tinted;
}
}
私はベクトル資産のリソースIDを指定すると、コードは完璧に動作し、画像が押されたときに色を付け、私は定期的にPNGを使用する場合、適用される一切の色合いはありませんアイコンが押された。理由がわからない理由がある場合は、両方の資産タイプをサポートする代替方法を投稿してください。
ありがとうございます!
'appcompat-v7' /' support-v4'のどのバージョンをお使いですか?最新のもの? 24.2.0? – pskink
@pskink 24.2.1。ソリューションについては私の答えを参照してください。 – privatestaticint
それはちょうど24.2.0と働く、私は(ダブル)は、カスタムビューの必要はありません – pskink