导航
当前位置:首页>>app
在线生成app,封装app

安卓9 开发者 夜间模式

2023-11-18 围观 : 5次

夜间模式是一种可以在暗光环境下减轻眼睛压力的显示方式,多见于手机、电脑等设备。随着智能手机的快速发展,越来越多的应用程序支持夜间模式,Android9也不例外。在本文中,我们将介绍Android 9 夜间模式的实现原理和详细介绍。

实现原理

Android 9夜间模式的实现基于两个方面的技术:主题样式和场景识别。

主题样式: Android 9 夜间模式使用主题样式将屏幕的颜色从白色转变为黑色或灰色色。主题样式可以定义为布局的 XML 文件,内容包括字体、颜色、背景等。

场景识别: Android 9 夜间模式需要识别当前的环境,在白天,应用程序应默认显示白色主题,而在晚上或光线较暗的环境下,则应自动切换到黑色或灰色主题。为了实现场景识别,Android 9 加入了“UiModeManager”类,该类提供了 "setNightMode()"、"getNightMode()" 等方法,允许应用程序设置和获取当前 UI 模式。

详细介绍

下面是 Android 9 夜间模式的详细介绍:

1.支持夜间模式的应用程序

Android 9 夜间模式仅支持使用 Theme.AppCompat.DayNight 主题的应用程序。负责夜间效果的 Theme.AppCompat.DayNight 主题是在 AppCompat 库中实现的,同时也实现了自动切换日/夜模式。

2.添加依赖库

如果希望使用 AppCompat 库中的 DayNight 主题,则必须在 build.gradle 中添加以下依赖库:

dependencies {

implementation 'com.android.support:appcompat-v7:28.0.0'

}

3.设置主题

为了在应用程序中启用夜间模式,必须在 AndroidManifest.xml 中设置主题。可以将主题设置为 AppCompat.DayNight,同时指定使用的颜色主题。以下是一个例子:

android:theme="@style/AppTheme.Dark"

4.创建颜色主题

在 res/values 文件夹下创建两个文件夹: values 和 values-night。在 values 中创建 colors.xml 文件,定义日间模式使用的颜色;在 values-night 中创建 colors.xml 文件,定义夜间模式使用的颜色。

例如,以下是 values/colors.xml 文件的内容:

#3F51B5

#303F9F

#FF4081

以下是 values-night/colors.xml 文件的内容:

#1C2331

#0A0F18

#FF4081

在夜间模式下,颜色将从 values-night/colors.xml 文件中读取。

5.启用自动夜间模式切换

为了使应用程序能够自动切换日/夜模式,必须使用 UiModeManager 类中的 setNightMode () 方法。为了提高兼容性,可以使用 AppCompatDelegate 类和 AppCompatDelegate.getDefaultNightMode() 方法进行设置。

例如,以下代码将自动切换日/夜模式:

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);

以上代码将根据设备电池电量自动切换到日/夜模式。

还有一些其他的 AppCompat.MODE_NIGHT_NO、MODE_NIGHT_YES 和 MODE_NIGHT_FOLLOW_SYSTEM 选项,分别表示禁用日/夜模式、每次启动时始终使用夜间模式和随着系统日/夜模式切换。

总结

Android 9 的夜间模式能够在白天和晚上自动切换不同的颜色主题,明显减轻了眼睛的压力。通过 UiModeManager 中的类和 AppCompat 库的支持,在应用程序中也能方便地实现夜间模式。

相关文章
  • iostf打包

    标题:IOS的TF打包详细原理介绍在移动应用开发中,打包应用是一个重要的环节,尤其是在iOS应用开发中,一个名为iTunes File Sharing(简称:iostf)的功能非常受欢迎。本文将为大家详细介绍iostf打包的原理和相关操作,帮助您了解如何对iOS应用进行iostf打包。一、iostf...

    2023-11-30
  • python开发安卓手机app

    Python是一种易于学习、跨平台、高级语言,非常适合初学者和中级程序员。在移动应用程序开发中,Python非常流行。它已经成为了移动应用开发的首选语言之一,Python广泛运用于Android和iOS开发。那么,如何在Python中开发安卓手机应用呢?我们可以通过以下方式完成:## 一、使用Kiv...

    2023-11-11
  • app 开发深圳招聘信息

    深圳是中国重要的经济中心之一,也是全国最著名的信息技术中心之一,吸引了大量的 IT 从业人员和企业。随着移动互联网的快速普及,APP 开发变得越来越重要。APP 开发是现代互联网行业的核心,对于许多企业和创业公司来说,拥有自己的 APP 改变了他们和顾客的沟通方式,也成为了他们最主要的竞争力。这篇文...

    2023-11-06
  • webview入门知识

    1、我们通常是用浏览器来浏览网页,你很清楚的知道你正在使用浏览器,要么是PC客户端,要么是手机上的app。但是webview是一个嵌入式的浏览器,是嵌入在原生应用中的,你可能都意识不到你在用浏览器。2、传统浏览器分为两个部分,UI(地址栏、导航栏)和浏览器引擎。webview就是原生应用中的浏览器引擎。3、webview只是一个可视...

    2023-06-29
  • app或微信积分墙开发

    积分墙指的是一种通过完成任务获得积分,进而兑换礼品或转化为虚拟货币的营销模式。在移动互联网时代,积分墙得到了广泛应用,为吸引用户、提升用户留存、增加活跃度等方面发挥了重要的作用。其中,app和微信积分墙是目前最常用的两种方式,下面将介绍其原理和详细开发流程。一、app积分墙开发原理1.用户下载安装a...

    2023-11-16