39

我有两种不同颜色的图像,对应于 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。

4

1 回答 1

102

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

在样式.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>

访问资源页面此 SO相结合最终让它在我的脑海中点击。

于 2012-12-06T02:16:22.690 回答