Я хочу изменить цвет значка гамбургера/стрелки в навигационном ящике. Я знаю, что могу изменить его в стилях, но я хочу динамически изменить его в java. Кто-нибудь знал, как это сделать?
Динамическое изменение цвета значка гамбургера/стрелки Android
comment
Какой код не работает?
- person moffeltje   schedule 26.08.2015
comment
здесь такая же проблема. и @moffeltje думаю, что Рафалу не повезло найти код для него (то же самое здесь) .. его искали 3 часа.
- person MiguelHincapieC   schedule 11.09.2015
comment
Рафаль, если вы нашли ответ, можете ли вы опубликовать его или обойти его?
- person MiguelHincapieC   schedule 11.09.2015
comment
Нет, я не нашел, как это сделать, единственный способ раскрасить этот значок - изменить тему в ресурсе:/
- person Rafal Ulko   schedule 14.09.2015
comment
Я понял, я пытаюсь динамически изменить все элементы панели инструментов. Сейчас мне не хватает ActionMenuViews посмотрите на мой вопрос.
- person MiguelHincapieC   schedule 16.09.2015
Ответы (2)
Используя 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)
person
MiguelHincapieC
schedule
16.09.2015
Нашел ли это полезным для вас?, вам нужно что-то еще или это нормально. Не забудьте принять правильный ответ
- person MiguelHincapieC; 17.09.2015
Это работает, спасибо. И его нужно установить в onCreateOptionsMenu, иначе он не работает. По крайней мере для меня.
- person Zokran; 11.01.2016
Вы можете использовать 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);
Дополнительные сведения о окрашивании с возможностью рисования см. в сообщении Криса Бэйна о поддержке библиотека версии 22.1
person
Gaëtan Maisse
schedule
26.08.2015
Да, я пробую это, но теперь нет анимации
- person Rafal Ulko; 26.08.2015