我想更改导航抽屉的汉堡/箭头图标的颜色。我知道我可以更改它的样式,但我想在 java 中动态更改它。有人知道怎么做吗?
问问题
2416 次
2 回答
10
使用appcompat-v7:23.0.1下一个代码对我有用:
int color = Color.parseColor("#FFEEEE00");
final PorterDuffColorFilter colorFilter = new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP);
for (int i = 0; i < toolbar.getChildCount(); i++) {
final View v = toolbar.getChildAt(i);
if (v instanceof ImageButton) {
((ImageButton) v).setColorFilter(colorFilter);
}
}
用在public boolean onCreateOptionsMenu(Menu menu)
于 2015-09-16T20:50:51.350 回答
0
您可以使用setTint
新DrawableCompat
类(来自支持 v4 库)
// Get the icon you want as a drawable
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_menu, null);
// "Enable" tinting process
drawable = DrawableCompat.wrap(drawable);
// Tint it
DrawableCompat.setTint(drawable, Color.BLACK);
// Set it as action bar icon
actionBar.setHomeAsUpIndicator(drawable);
有关可绘制着色的更多详细信息,请参阅关于支持 lib V22.1 的 Chris Bane 帖子
于 2015-08-26T13:47:13.733 回答