Подтвердить что ты не робот

Изменение на основе темы

У меня есть изображение в двух разных цветах, соответствующих двум различным темам в Android. Я хочу использовать их в своей панели действий. Я хочу ссылаться на ярлык для значка, не относящийся к тегам, но имеющий эту ссылочную ссылку светлый цвет для легкой темы и темный цвет для легкой темы.

В меню:

    <item
        android:id="@+id/menu_attach_existing_picture"
        android:icon="@drawable/buttonface_picture"
        android:showAsAction="always"
        android:title="@string/menu_attach_existing_picture">
    </item>

Затем в стилях я хочу иметь что-то, что отображает @drawable/buttonface_picture на @drawable/buttonface_picture_light в светлой теме и @drawable/buttonface_picture_dark для темной темы.

Я чувствую, что должен быть способ, но мне трудно найти синтаксис. Если он что-то меняет, я использую ActionBarSherlock.

4b9b3361

Ответ 1

Похоже, что я всегда просто поиск Google или два от моих ответов. Решение:

в styles.xml

<attr name="buttonface_picture" format="reference"/>

затем в актуальной теме:

<item name="buttonface_picture">@drawable/buttonface_picture_dark</item>

или

<item name="buttonface_picture">@drawable/buttonface_picture_light</item>

Затем в menu.xml:

<item
    android:id="@+id/menu_attach_existing_picture"
    android:icon="?attr/buttonface_picture"
    android:showAsAction="always"
    android:title="@string/menu_attach_existing_picture">
</item>

Доступ к странице ресурсов в сочетании с this SO в конечном итоге заставил ее щелкнуть мой мозг.