基于主题改变Drawable

时间:2012-12-06 01:44:32

标签: android styles

我有两种不同颜色的图像,对应Android中的两个不同主题。我想在我的Action Bar中使用它们。我想参考一个drawable图标,主题不可知,但有可绘制的参考灯光主题的浅色和浅色主题的深色。

在菜单中:

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

然后在样式中我希望在light主题中将@ drawable / buttonface_picture映射到@ drawable / buttonface_picture_light,为黑暗主题设置@ drawable / buttonface_picture_dark。

我觉得必须有办法,但我找不到语法。如果它改变了什么,我正在使用ActionBarSherlock。

1 个答案:

答案 0 :(得分:75)

似乎我总是只是谷歌搜索或两个远离我的答案。解决方案是:

style.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>

Accessing Resources Page结合this SO最终让我点击了我的大脑。