gpt4 book ai didi

android - 不同的 Android SDK 版本使用不同的图标

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:20:29 25 4
gpt4 key购买 nike

我的 Android 菜单有图标。在 Android 3+ 上,我使用的是黑色 ActionBar,因此图标为白色。然而,在 Android 2.x 上,菜单本质上是白色的,这意味着图标几乎是不可见的。如何为不同的版本使用不同的菜单图标?我假设我可以使用不同的 drawable 目录(如 res/drawable-mdpi-v11)来做到这一点,但我想知道是否有另一种方法,这样我就不必在添加版本或像素时创建一堆不同的目录密度。

编辑:我将深色版本放在 res/drawable-mdpi 和 res/drawable-hdpi 中用于 Android 2.x,我将浅色版本放在 res/drawable-mdpi-v11 和 res/drawable-hdpi-v11 中用于与 Android 3.x 及更高版本一起使用,但我的 Android 2.1 (sdk 7) 模拟器仍显示精简版。

知道为什么吗?

最佳答案

您可以根据平台版本选择主题,如 Styles and Themes 中所述开发指南。像这样在 res/values/styles.xml 中定义样式:

<style name="ThemeSelector" parent="android:Theme.Light">
...
</style>

然后在 res/values-v11/文件夹中,选择你的主题(可能是 Holo,如果你是黑暗的)

<style name="ThemeSelector" parent="android:Theme.Holo">
...
</style>

然后将图标添加到该样式。例如,这是来自 HoneycombGallery 的 styles.xml 文件的 fragment 。示例应用程序。

<style name="AppTheme.Dark" parent="@android:style/Theme.Holo">
...
<item name="menuIconCamera">@drawable/ic_menu_camera_holo_dark</item>
<item name="menuIconToggle">@drawable/ic_menu_toggle_holo_dark</item>
<item name="menuIconShare">@drawable/ic_menu_share_holo_dark</item>
</style>

底部的 3 个元素都是 drawable 目录中的图标。对于每组特定于分辨率的图标,您仍然需要至少一个文件夹,但您可以将浅色和深色图标组合到同一个文件夹中,但您不必为每个平台版本设置不同的图标文件夹。此外,您需要将它们列为 values/attrs.xml 文件中的引用,如下所示:

<resources>
<declare-styleable name="AppTheme">
<attr name="listDragShadowBackground" format="reference" />
<attr name="menuIconCamera" format="reference" />
<attr name="menuIconToggle" format="reference" />
<attr name="menuIconShare" format="reference" />
</declare-styleable>
</resources>

此时您将能够使用“?attr/NameOfYourDrawable”解引用在您的布局 XML 中引用它们,如下所示:

<item android:id="@+id/menu_camera"
android:title="@string/camera"
android:icon="?attr/menuIconCamera"
android:showAsAction="ifRoom" />

关于android - 不同的 Android SDK 版本使用不同的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com