android 黑夜模式适配记录

本文详述了在Android 10及以上版本中如何进行深色模式的适配,包括关闭自动深色模式,手动创建深色主题资源文件夹,以及在APP内部切换深色模式的方法。通过自定义适配,可以确保应用在深色模式下呈现良好效果。
摘要由CSDN通过智能技术生成


前言

在android 10以上,手机可开启深色模式,为了让手机更符合谷歌的规范,我们需要进行深色模式的适配


一、不开启深色模式

深色模式下,部分手机系统开启深色模式后,会自动帮我们将app转变为深色模式,即使我们并没有进行适配;这种自动的转色,大部分时候不尽人意,为了不让app在深色模式下显示紊乱,我们需要关闭深色模式;

1.关闭自动深色模式

1.一般我们都会让整个app使用统一的theme,如下:
<application
	...
	android:theme="@style/mTheme">
	...
</application>
在style.xml中,定义我们的theme,如下:
<style name="mTheme" parent="Theme.AppCompat.DayNight.NoActionBar">

        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowAnimationStyle">@style/default_animation</item>
        <item name="android:windowBackground">@color/base_color_FDFDFD</item>
    </style>
为了关闭部分手机系统自动将app转为深色模式,我们需要在style中加入如下一行:
加入之后一般会报错,提示为此设置为api 29 以上才有,我们只需根据提示快速生成value-v29文件夹,
此时会自动在value-v29文件夹下生成style.xml
<item name="android:forceDarkAllowed">false</item>
2.如果APP在前台,系统转为深色模式,APP可见的Activity将会被重新创建,既然我们不开启深色模式,
那么我们也不需要重新创建Activity,在 AndroidManifest.xml 中,我们对Activity 做如下修改:
<activity
            ...
            android:configChanges="uiMode"
			...
/>

二、自己适配深色模式

适配深色模式一般有以下几种方式:

  • 让系统自动适配;就是上面我们关闭的那种,大部分情况下自动转变深色模式不尽人意,部分手机也无法实现;
  • 完全由我们自己适配;即为每种颜色定义一个深色模式下的颜色值,这种方案也需要关闭系统自动转变深色模式的功能,否则部分深色模式下的颜色
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值