Как динамически изменить цвет всех значков панели инструментов без стилизации панели инструментов
Я искал способ изменить цветвсе элементы на панели инструментов, работающие как ActionBar динамически.
Характеристики:
parent="Theme.AppCompat.Light.NoActionBar"
на styles.xmlAppcompat v7 22установкаsetSupportActionBar()
в моемAppCompatActivity
Я получил цвета из запроса POST (обычно формат #FF ------)Я прочитал следующий пост:
И другие ссылки, связанные с этой темой ... ни одна из них не работает для меня.
Что я сейчас делаю, так это поиск ImageButton на панели инструментов (Получить ссылку на переключатель ящика в панели поддержки действий) и применение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);
ВОПРОС: Есть ли лучший способ сделать это (динамически изменить цвет элементов панели инструментов)?