如何更改默认元素颜色android布局?

时间:2017-04-22 14:45:22

标签: java android layout

我不知道我在应用程序中如何更改布局的不同元素的默认颜色,如RadioButton,Checkbox等。现在看到白色,我有一个白色背景。在正常的布局中,我可以通过设置" buttonTint"来解决这个问题。元素到我想要的颜色,但在preferences.xml(使用PreferenceScreen布局)我不能这样做。

这就是发生的事情(请参阅此处=白色复选框): enter image description here

我不知道我改变了什么,但我无法回滚。这是我的styles.xml:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorControlNormal">@color/white</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:itemBackground">@color/white</item> <!-- Menu background color -->
    <item name="android:itemTextAppearance">@style/myCustomMenuTextAppearance</item>
</style>

<!-- Menu text color -->
<style name="myCustomMenuTextAppearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
    <item name="android:textColor">#000</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="AnalyzeForeground" parent="android:Theme.Holo.Dialog">
    <item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:textColorPrimary">#FFFFFF</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textSize">12sp</item>
</style>

<style name="CustomAlertDialogStyle">
    <item name="android:bottomBright">@android:color/transparent</item>
    <item name="android:bottomDark">@android:color/transparent</item>
    <item name="android:bottomMedium">@android:color/transparent</item>
    <item name="android:centerBright">@android:color/transparent</item>
    <item name="android:centerDark">@android:color/transparent</item>
    <item name="android:centerMedium">@android:color/transparent</item>
    <item name="android:fullBright">@android:color/transparent</item>
    <item name="android:fullDark">@android:color/transparent</item>
    <item name="android:topBright">@android:color/transparent</item>
    <item name="android:topDark">@android:color/transparent</item>
</style>

修改

我添加了color.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#0098D6</color>
    <color name="colorPrimaryDark">#006e99</color>
    <color name="colorAccent">#0098D6</color>

    <color name="transparent_white_90">#F2FFFFFF</color>

    <color name="rating7">#ff6666</color>
    <color name="rating8">#ff0000</color>
    <color name="rating9">#990000</color>
    <color name="rating10">#800080</color>

    <color name="white">#FFF</color>

    <color name="background_transparent">#585858</color>
</resources>

2 个答案:

答案 0 :(得分:1)

问题是您使用了colorControlNormal作为white颜色,而overrides使用了您定义为blue的控件colorAccent颜色。

<强> SOLUTION:

colorControlNormal移除项style或向colorControlNormal提供不同的color

<item name="colorControlNormal">@color/colorAccent</item>

有关详细信息,请参阅documentation

colorControlNormal: The color applied to framework controls in their normal state.

希望这会有所帮助〜

答案 1 :(得分:0)

您可以使用通常在res / values / colors.xml中指定的简单颜色资源。

<color name="red">#ffff0000</color>

并使用via 机器人:背景=&#34; FFFF0000&#34;