【问题标题】:Customize background color of Theme: Theme.AppCompat.NoActionBar自定义 Theme 的背景颜色: Theme.AppCompat.NoActionBar
【发布时间】:2018-01-15 04:46:05
【问题描述】:

我为我的应用使用了内置主题 Theme.AppCompat.NoActionBar。但它给出了完整的黑色背景。我想将此黑色背景更改为灰色。所以我尝试自定义我的主题如下:

这是我的styles.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="MyTheme">    // Using Customized theme.
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

//Customize the Theme.

<style name="MyTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:backgroundDimAmount">0.8</item>
</style>

这里我想减轻我的背景颜色,所以我使用android:backgroundDimAmount,但它不起作用。

我还使用了以下内容:

<style name="MyTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:background">#707070</item>
</style>

这会改变背景颜色,但会给我以下屏幕截图的奇怪结果:

我的实际活动如下图所示:

所以我的问题是如何减轻或改变背景颜色?

【问题讨论】:

    标签: android xml


    【解决方案1】:

    你想要这个

    <item name="android:background">@color/<mycolor></item>
    <item name="android:windowBackground">@color/<mycolor></item>
    <item name="android:colorBackground">@color/<mycolor></item>
    

    记得改成所有样式的xmls

    【讨论】:

    • 它给了我与我添加的第一张图片相同的屏幕。
    • 请问您正在测试的 api 级别是什么
    • 请勿在主题中使用android:background!它将适用于所有没有你想要的不是背景的视图。 android:windowBackground 就够了。
    • @EugenPechanec 你的建议奏效了。请作为答案。
    【解决方案2】:

    你应该在 style.xml 中使用这样的样式.....

    <resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    
        <item name="android:background">@color/gray</item>
        <item name="android:windowBackground">@color/gray</item>
        <item name="android:colorBackground">@color/gray</item>
    </style>
    </resources>
    

    在colors.xml中做这个.....

    <resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="gray">#707070</color><!--this your color-->
    </resources>
    

    the final out put

    【讨论】:

      【解决方案3】:

      android:background 替换为android:windowBackground
      还将硬编码的颜色(例如#707070)更改为颜色参考(例如@color/myYellowBackgroundColor)。

      使用 android:windowBackground 时,您告诉 android 仅在屏幕上的主要活动内影响子视图的背景。

      【讨论】:

        【解决方案4】:

        在你的styles.xml文件中使用它

        <item name="android:statusBarColor">@color/yourcolor</item>
        

        记得在 color.xml 文件中添加你的颜色。不要硬编码你的颜色。

        【讨论】:

          猜你喜欢
          • 2011-09-12
          • 1970-01-01
          • 1970-01-01
          • 2018-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多