Я искал способ изменить цвет все элементы в панели инструментов, работающие как ActionBar динамически.Как изменить все значки значков ToolBar динамически без панели инструментов моделирования.
Технические характеристики:
- Использование
parent="Theme.AppCompat.Light.NoActionBar"
на styles.xml - AppCompat v7 22
- установка
setSupportActionBar()
в моемAppCompatActivity
- я получил цвета из запроса POST (обычно # FF-- ---- формат)
Я прочитал следующее сообщение:
- How do I change the color of the ActionBar hamburger icon?
- How to change color of hamburger icon in material design navigation drawer
- Can't change navigation drawer icon color in android
- ActionBarDrawerToggle v7 arrow color
- Android Toolbar color change
- Android burger/arrow icon dynamic change color (это один работал в некоторым образом, но я не люблю использовать собственное изображение wihtout анимации).
И другие ссылки, связанные с этой темой ... никто из них не работал для меня.
Что я делаю сейчас ищет ImageButton на панели инструментов (Get reference to drawer toggle in support actionbar), и применяя setColorFilter()
ко всем из них как следующий код:
for (int i = 0; i < toolbar.getChildCount(); i++){
if (toolbar.getChildAt(i) instanceof ImageButton) {
ImageButton ib = (ImageButton) toolbar.getChildAt(i);
ib.setColorFilter(Color.parseColor("#A74231"), PorterDuff.Mode.SRC_ATOP);
}
}
Я меняющегося цвет фона и текста: toolbar.setBackgroundColor
и toolbar.setTitleTextColor
.
Для иконок меню (в том числе значка меню переполнения):
MenuItem item2 = mMenu.findItem(R.id.actionbar_group_moreoverflow);
item2.getIcon().setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
ВОПРОС: есть лучший способ сделать это (изменить панели инструментов элементов цвета динамически)?
Я делаю что-то похожее на вас, основанное на ответе @ Шишрама. Но по-прежнему отсутствует способ раскрашивания фона и значков меню переполнения. – MiguelHincapieC