Android中设置主题用自己的style时,屏幕背景在部分手机上是黑色的,部分手机就正常

出现该问题的原因: 在style里面直接写上16进制颜色值
正确做法: 应该以引用的方式去引用颜色,如下:

<style name="Blue" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:colorPrimaryDark">@color/status_blue</item>
        <item name="android:statusBarColor">@color/control_highlight_blue</item>
        <item name="android:colorPrimary">@color/action_blue</item>
        <item name="android:windowBackground">@color/haitianlan</item>
        <item name="android:navigationBarColor">@color/haitianlan</item>
        <item name="android:colorForeground">@color/fg_blue</item>
        <item name="android:colorBackground">@color/blue</item>
        <item name="android:colorAccent">@color/control_activated_blue</item>
        <item name="android:colorControlNormal">@color/control_normal_blue</item>
        <item name="android:colorControlHighlight">@color/control_highlight_blue</item>
        <item name="android:colorControlActivated">@color/control_activated_blue</item>
        <item name="android:colorButtonNormal">@color/button_normal_blue</item>
        <item name="android:textColor">@color/yuweihui</item>
        <item name="android:textColorPrimaryDisableOnly">@color/yuweihui</item>
        <item name="android:textColorPrimary">@color/yuweihui</item>
    </style>

上面的"android:windowBackground"就是屏幕的背景颜色,如果你直接在item里面写16进制颜色值,例如:#0000ff,你会发现部分手机上背景色就是黑色,这个16进制颜色值根本不起作用。

### 回答1: 如果您想让 Android 状态栏变为黑色,可以使用以下步骤: 1. 在 AndroidManifest.xml 的应用程序主题添加以下属性: ```xml android:theme="@style/Theme.AppCompat.Light.NoActionBar" ``` 2. 在 styles.xml 文件添加以下样式: ```xml <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:statusBarColor">#000000</item> </style> ``` 3. 将应用程序主题设置为上述样式: ```xml android:theme="@style/AppTheme" ``` 这样就可以将 Android 状态栏设置黑色。注意,这些步骤可能因 Android 版本和使用的库而有所不同。 ### 回答2: 在 Android 设备上,状态栏是显示在屏幕顶部的区域,它包含了诸如间、电量、网络连接等系统信息。根据 Android 的设计理念,当状态栏背景色为白色,状态栏上的文字以黑色显示,以确保良好的可读性和用户体验。 在某些情况下,我们可能希望状态栏的背景色为黑色,这种情况通常发生在应用程序需要全屏显示。当状态栏背景色为黑色,为了保持文字的可读性,Android 系统会自动将状态栏上的文字颜色设置为浅色,即白色。 我们可以通过在应用程序的代码进行设置来实现这个效果。一种常用的方法是使用 `Window` 类的 `setStatusBarColor()` 方法,该方法接受一个表示颜色的整数值作为参数。要将状态栏的背景设置黑色,我们可以传入颜色值 `Color.BLACK`。这将使系统将状态栏的背景设置黑色,并将文字颜色设置为白色,以确保良好的对比度。 需要注意的是,为了能够正确设置状态栏的背景色,我们的应用程序必须使用对应的主题或样式。通常,我们可以在 AndroidManifest.xml 文件的 `<application>` 标签指定主题,或在布局文件使用 `android:theme` 属性指定样式。 综上所述,Android 状态栏的黑色背景可通过编程设置来实现,以实现全屏显示效果。通过将状态栏背景设置黑色,系统会自动将状态栏上的文字颜色设置为浅色,以保证良好的可读性和用户体验。 ### 回答3: Android 状态栏变为黑色的原因有以下几种情况。 首先,如果手机使用的是安卓5.0及以上版本,则在桌面背景浅色的情况下,状态栏默认会变为黑色。这是为了让状态栏的图标和文字更加清晰可见。如果你想要将状态栏变回白色,可以通过修改手机系统的设置来实现。 其次,有些应用程序会在特定的界面或场景下将状态栏变为黑色。这种情况通常出现在游戏、多媒体和照片应用,以提供更好的视觉体验。当你退出这些应用后,状态栏会恢复为原来的颜色。 此外,一些定制的Android ROM也可能会将状态栏默认设置黑色。这些定制ROM通常可以通过修改系统设置或者安装主题来改变状态栏的颜色。 最后,个别机型的手机厂商对于状态栏的颜色进行了定制。例如,一加手机在系统设置提供了自定义状态栏颜色的选项,用户可以根据自己的喜好将状态栏设置黑色或其他颜色。 总结来说,Android 状态栏变为黑色可能是为了提高可见性、提供更好的视觉体验,或者是由于手机厂商或应用程序的定制设置。如果你想要改变状态栏的颜色,可以尝试修改手机系统设置、更换主题或者使用定制ROM等方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值