皮肤选项菜单 Android
Posted
技术标签:
【中文标题】皮肤选项菜单 Android【英文标题】:Skin Options Menu Android 【发布时间】:2012-02-16 21:28:08 【问题描述】:我正在尝试为 android 上的选项菜单设置皮肤。我使用自定义主题更改了背景颜色,但由于某种原因我无法更改文本颜色。
我的主题
<style name="default" parent="@android:style/Theme.NoTitleBar">
<!-- Menu panel colors -->
<item name="android:panelBackground">@color/optionsMenuBackgroundColor</item>
<item name="android:panelFullBackground">@color/optionsMenuBackgroundColor</item>
<!-- Menu item colors -->
<item name="android:itemTextAppearance">@style/OptionsMenuFont</item>
</style>
选项菜单字体的我的样式
<style name="OptionsMenuFont" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
<item name="android:textColor">@drawable/menu_item_font</item>
</style>
按钮颜色选择器 menu_item_font.xml 的可绘制对象
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Put other state colors up top -->
<item android:color="@color/optionsMenuTextColor" />
</selector>
那个颜色只是一个十六进制颜色#c4c4c4
我在这里错过了什么?
【问题讨论】:
你试过<item name="android:textColor">#c4c4c4</item>
吗?
我完全忘记了这个话题。我什至不记得这是什么项目。我应该删除这个问题吗?
【参考方案1】:
您可以更改文本颜色,但它应该位于 textColor 标签下。您不能在任何 textColor 中放置可绘制对象(无论是在样式中,还是在布局中)。如果要更改颜色,请将样式更改为:
<style name="OptionsMenuFont" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
<item name="android:textColor">#c4c4c4</item>
</style>
【讨论】:
【参考方案2】:这个问题已经以不同的方式被问过很多次了。使用 XML 布局,您可以更改背景颜色,但不能更改文本颜色:
http://code.google.com/p/android/issues/detail?id=4441
但是,您可以编写一个自定义类来完成菜单外观:
http://www.techjini.com/blog/customizing-background-and-text-color-in-options-menu-android/
【讨论】:
这对我不起作用,我只是得到IllegalStateException
,因为已经设置了工厂。
这不是真的。您可以通过在主题 (styles.xml) 中指定来更改文本颜色。以上是关于皮肤选项菜单 Android的主要内容,如果未能解决你的问题,请参考以下文章