DrawableCompat setTint不起作用

时间:2015-10-01 07:03:36

标签: android android-support-library android-drawable

我正在使用DrawableCompatsetTint更改我的Drawable之一的颜色并将其颜色设置为白色。

我在onCreateOptionsMenu

中使用此代码
Drawable mDrawable = ContextCompat.getDrawable(this,R.drawable.ic_add_circle_outline_black_24dp);
mDrawable = DrawableCompat.wrap(mDrawable);
DrawableCompat.setTint(mDrawable, Color.RED);
menu.findItem(R.id.item_addnew).setIcon(mDrawable);

Drawable仍为黑色。我是以错误的方式使用DrawableCompat吗?

2 个答案:

答案 0 :(得分:1)

不确定,但尝试更改

DrawableCompat.setTint(mDrawable, R.color.white);

DrawableCompat.setTint(mDrawable,  getResources().getColor(R.color.white));

答案 1 :(得分:0)

出于某种神秘的原因,在我的Menu的XML中将黑色图标设置为默认值并使用Menu.getIcon()检索Drawable就可以了:

Drawable mDrawable = menu.findItem(R.id.item_addnew).getIcon();
mDrawable = DrawableCompat.wrap(mDrawable);
DrawableCompat.setTint(mDrawable, Color.WHITE);
menu.findItem(R.id.item_addnew).setIcon(mDrawable);