У меня есть тулбар к которому я добавил список с меню.
<?xml version="1.0" encoding="utf-8"?>
<!--Action buttons -->
<item
android:id="@+id/toolbar_attach"
android:icon="@drawable/ic_action_attachment_2"
android:orderInCategory="0"
android:title="@string/attach"
app:showAsAction="always"
/>
<item
android:id="@+id/toolbar_record"
android:icon="@drawable/ic_action_mic"
android:orderInCategory="1"
android:title="@string/record"
app:showAsAction="always" />
<!--Popup menu-->
<item
android:id="@+id/toolbar_save"
android:orderInCategory="0"
android:title="@string/save"
app:showAsAction="never" />
<item
android:id="@+id/toolbar_cancel"
android:orderInCategory="1"
android:title="@string/cancel"
app:showAsAction="never" />
<item
android:id="@+id/toolbar_delete"
android:orderInCategory="2"
android:title="@string/delete"
app:showAsAction="never" />
Проблема в том, что цвет тулбара темный и иконки на нём теряются (помечены showAsAction). Поэтому хочу поменять их цвет, например на белый.
Искал варианты, попробовал android:iconTint="желаемый_цвет", но данное решение подходит для api 26+. Подскажите решение.
Вы можете сделать это программно так:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
for(int i = 0; i < menu.size(); i++){
Drawable drawable = menu.getItem(i).getIcon();
if(drawable != null) {
drawable.mutate();
drawable.setColorFilter(getResources().getColor(R.color.textColorPrimary), PorterDuff.Mode.SRC_ATOP);
}
}
return true;
}
Для более ранних версий API, вы можете изменить цвет самих иконок. В папке drawable, находите нужную иконку, открываете и вместо черного (по умолчанию) указываете нужный цвет.
<path
android:fillColor="@color/blue"
android:pathData="..."/>
Так же стоит заметить, что изменить цвет можно только для векторных иконок. Если вы по каким то причинам используете растр, то цвет таких иконок можно изменить только в графическом редакторе.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей