安卓9 开发者 夜间模式

夜间模式是一种可以在暗光环境下减轻眼睛压力的显示方式,多见于手机、电脑等设备。随着智能手机的快速发展,越来越多的应用程序支持夜间模式,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 库的支持,在应用程序中也能方便地实现夜间模式。


相关知识:
安卓6
在安卓6.0中想要打开开发者模式,需要按照以下步骤操作:1. 打开“设置”应用。2. 滑到最下面,找到“关于手机”或“关于设备”选项,点击进去。3. 在“关于手机”或“关于设备”中,找到“版本号”并连续点击七次。系统将会提示“您已进入开发者模式”。4. 点
2023-05-23
安卓11如何打开开发者选项
开发者选项是安卓手机上的一项高级设置,它允许用户进入高级设置来优化手机的性能,更改系统行为并进行开发。开发者选项是一项隐藏的功能,因此,你需要启用它才能使用。本文将介绍在安卓11上如何打开开发者选项。以下是详细步骤:步骤一:进入设置首先,你需要进入手机的设
2023-05-23
odoo安卓app开发
Odoo是一款强大的商业管理软件,它经常被用于中小企业管理。随着智能手机和移动设备的普及,用户对于移动端的需求也越来越高。而odoo安卓app能够帮助用户快速地管理企业。下面为您介绍odoo安卓app开发的原理和详细介绍。首先,odoo安卓app采用的是H
2023-05-23
lua安卓开发人脸识别
人脸识别在安卓开发中被广泛应用,可以用来解锁手机、人脸支付、人脸检索等等。本文将详细介绍人脸识别的原理和在安卓开发中的实现方法。一、原理介绍人脸识别其实就是将人脸图像中的特征点提取出来,然后与预先存储的特征点进行比对,判断是否匹配。常用的比对方法有两种:1
2023-05-23
java开发安卓入门教程
Java是一种高度流行的编程语言,它的使用涵盖了几乎所有领域,而其中一个最广泛的领域是Android移动应用程序的开发。对于想要进入移动开发领域的开发者,学习Java并在Android开发中应用它是一个必经之路。本文将为您介绍Java开发安卓的基础知识、原
2023-05-23
figma安卓开发
Figma是一款强大的在线协作设计工具,可以帮助设计师和开发人员在同一个平台上进行协作。而在安卓开发中,Figma也占据了重要的地位。一、 Figma在安卓开发中的作用在安卓开发中,Figma能够帮助我们完成以下任务:1. 制作原型:在Figma中,我们可
2023-05-23
eclipse安卓开发哪个版本好
Eclipse是一款开放源代码的集成开发环境(IDE),它可以用于多种编程语言的开发。在安卓开发领域,Eclipse也是一款非常流行的开发工具。但是,由于安卓开发环境的更新换代,许多开发者对Eclipse的版本选择有些疑虑,不知道哪个版本比较适合安卓开发。
2023-05-23
delphi安卓服务开发
Delphi是一款非常强大的RAD工具,可以让程序员快速构建跨平台应用程序,包括Windows、Mac和Android等不同操作系统。在Delphi中,我们可以使用FireMonkey框架来开发Android应用程序,其中包括服务开发。下面,我们将详细介绍
2023-05-23
c语言开发安卓应用
C语言是一种通用的、高效的、可移植的编程语言,已经被广泛使用于各个领域,比如操作系统、网络通信、游戏开发等。而安卓开发,作为移动端应用开发的重要领域,主要使用Java语言进行开发。然而,有些开发者可能会想在安卓应用中使用C语言开发,以便实现更底层的操作或者
2023-05-23
成都开发安卓app
成都作为中国四川省的省会,拥有大量的科技人才,其中不乏从事安卓应用开发的工程师。如果你对成都开发安卓应用这个领域感兴趣,那么请继续阅读这篇文章。我们将深入了解安卓应用开发的原理,并提供一个详细的入门教程。安卓(Android)是一个基于Linux的开放源代
2023-04-28
安卓文件管理器app开发
在本教程中,我们将概述如何开发一个基本的安卓文件管理器应用。安卓文件管理器可以帮助用户对其设备中的文件和文件夹进行操作和管理,例如:浏览、打开、复制、粘贴、删除、重命名等。一、概述要制作一个安卓文件管理器,你需要了解以下几个主要概念:1. 安卓文件系统2.
2023-04-28
安卓商城app开发定制软件
标题: 安卓商城App开发定制软件:原理与详细教程引言:随着移动互联网的普及,越来越多的企业和创业者都在尝试将自己的业务迁移到手机平台。作为市场份额最大的移动操作系统之一,安卓平台的商城App已经成为了吸引用户和获取利润的重要途径。在这篇文章中,我们将介绍
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1