更改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 图像,而不是颜色定义。例如,重点编辑文本您会在各种设备中看到橙色/蓝色......这不是颜色,但都是可绘制的......您必须修改它们中的每一个,例如编辑文本&lt;item name="android:editTextStyle"&gt;___mystyle___ &lt;/item&gt; 接受你的评论“你必须修改它们中的每一个”,因为在那里不可能一次覆盖“默认”可绘制对象,因为即使在“标准主题”中也有不同的可绘制对象? 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应用程序的基本主题颜色的主要内容,如果未能解决你的问题,请参考以下文章

android studio中的任何视图都会根据设备默认主题更改背景颜色

Android:更改背景颜色查看 onClick 按钮

如何在主题中全局更改android按钮文本颜色

Android:使用主题/样式更改禁用文本的颜色?

有没有办法根据应用程序主题更改初始屏幕颜色?

如何在带有深色主题的android上更改chrome中状态栏的颜色?