更改android应用程序的基本主题颜色
Posted
技术标签:
【中文标题】更改android应用程序的基本主题颜色【英文标题】:Change basic theme color of android application 【发布时间】:2012-03-30 03:08:20 【问题描述】:每个 android 应用程序/主题都有自己的基本主题颜色:
HTC Desire Z - 绿色,
大多数三星设备 - 黄色,...
它是选定列表项、选项菜单-单选按钮、单选按钮、进度条的颜色......
我知道如何单独更改这些颜色。但是有没有办法通过设置一个值来改变所有这些?
类似:
<style name="my_theme" parent="@android:style/Theme.Black">
<item name="android:_DEFAULT_BASE_COLOR_1">#XXXXXX</item>
</style>
//编辑:
所以我正在寻找 _DEFAULT_BASE_COLOR_1 的关键字,在这里我可以为单选按钮设置颜色,选择的列表项只有一个项目。有可能吗?
【问题讨论】:
【参考方案1】:在 application
标签中的清单中定义为:
android:theme="@style/mytheme"
现在在 res/values 中,您可以定义一个名为 theme.xml 的文件,其内容为:
<resources>
<style name="mytheme" parent="@android:style/Theme" >
<item name="android:_DEFAULT_BASE_COLOR_1">#XXXXXX</item>
<item name="android:windowNoTitle">true</item>
... .
</style>
</resources>
【讨论】:
这就是我已经拥有的 :) 我正在寻找 '_DEFAULT_BASE_COLOR_1' 的正确关键字 所有这些通常都有 9-patch 图像,而不是颜色定义。例如,重点编辑文本您会在各种设备中看到橙色/蓝色......这不是颜色,但都是可绘制的......您必须修改它们中的每一个,例如编辑文本<item name="android:editTextStyle">___mystyle___ </item>
接受你的评论“你必须修改它们中的每一个”,因为在那里不可能一次覆盖“默认”可绘制对象,因为即使在“标准主题”中也有不同的可绘制对象?
yup ..sdk 中没有任何“默认”可绘制对象...您甚至可以通过查看您的 android-sdk 代码来实际查看可绘制对象..在 sdk 的 res/drwawable* 目录中...
这里的android:_DEFAULT_BASE_COLOR_1是什么意思?为什么这个答案被标记为接受?【参考方案2】:
试试这个:
<style name="my_theme" parent="@android:style/Theme.Black">
<item name="listChoiceIndicatorSingle">xxxxxxx</item>
<item name="radioButtonStyle">xxxxxxx</item>
<item name="listChoiceBackgroundIndicator">xxxxxxx</item>
<item name="listViewStyle">xxxxxxx</item>
<item name="listDivider">xxxxxxx</item>
<item name="listSeparatorTextViewStyle">xxxxxxx</item>
....
</style>
【讨论】:
嗯,这就是我要避免的(手动设置所有样式)。除此之外,样式不采用 listViewStyle 和 radioButtonStyle :)以上是关于更改android应用程序的基本主题颜色的主要内容,如果未能解决你的问题,请参考以下文章