RadiationX
@RadiationX
Front-End разработчик

Как поступить с иконками в разных темах оформления в приложении?

В приложении имеется две темы: светлая и тёмная, но иконки использовались только светлого цвета.
Иконки расположены в экшнбаре и выпадающих менюшках. Чтобы всё отображалось адекватно, я выбрал фоновый цвет, на котором бы они "контрастировали", но когда начал делать приложения в соответствии с материальным дизайном, то получилось что белые иконки были практически неразличимы на светлом выпадающем меню.
Что делать? как поступить? Неужели придётся каким-то образом делать переключение иконок при смене темы? или можно оставить "контрастный" фон, и не будет ли это идти в разрез правилам материального дизайна?
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 1
DrZ0idberg
@DrZ0idberg
Android-разработчик. Стаж - возраст Android.
Это делается достаточно просто.

1) Создаем собственные атрибуты для каждого изображения, зависящего от темы:
<declare-styleable name="AppTheme">
        <attr name="imageLogo" format="reference" />
</declare-styleable>


2) Добавляем эти атрибуты в свои темы и для каждой темы указываем подходящий вариант изображения:
<style name="Theme" parent="@android:style/Theme.Holo.Light">
    <item name="attr/imageLogo">@drawable/logo_light</item>
</style>
<style name="Theme.Dark" parent="@android:style/Theme.Holo">
    <item name="attr/imageLogo">@drawable/logo_dark</item>
</style>


3) Используем в разметке атрибут темы:
<ImageView
    …
    android:src="?attr/imageLogo"/>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы