安卓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 库的支持,在应用程序中也能方便地实现夜间模式。


相关知识:
安卓5
安卓5.0开发环境主要由三个部分组成:开发工具、开发框架和SDK。一、开发工具目前使用较多的安卓5.0开发工具有Android Studio和Eclipse ADT两种。1.Android StudioAndroid Studio是谷歌为Android平台
2023-05-23
安卓12开发版体验软件
随着时间的推移,安卓系统在全球范围内逐渐成为一种主流的移动设备操作系统。最新的安卓版本——安卓12还处于开发版阶段,但是已经可以通过体验软件来感受该版本的特点和优化。下面就让我们来详细介绍一下安卓12开发版体验软件的原理和使用方法。安卓12开发版是由谷歌发
2023-05-23
安卓11开发者预览计划
安卓11是Google计划中的最新操作系统,也是开发者专业人士和业余开发者都期待的版本之一。随着它的发布,Google也推出了安卓11开发者预览计划,旨在帮助开发者了解新功能和改进的细节。安卓11的开发者预览计划包含以下几个部分:1. 安卓11的新特性和改
2023-05-23
m1s安卓开发
M1S是一款基于ARM Cortex-A53架构的开发板,支持安卓系统开发。其主要组成部分包括CPU、RAM、存储芯片、输入输出接口等。简单来说,安卓开发就是通过开发工具对系统进行编程,实现各种应用程序的开发与功能扩展。M1S采用ARM64架构,因此首先需
2023-05-23
lua语言开发安卓
Lua语言是一种轻量级、高效的脚本语言,它非常适合在各种嵌入式系统、移动设备和企业服务器上运行。作为一种非常灵活的编程语言,Lua语言在移动应用开发中扮演了重要的角色,特别是在安卓开发中。在本篇文章中,我将深入介绍Lua语言在安卓开发中的应用及其实现原理。
2023-05-23
idea 安卓开发环境安装
作为一位开发者,搭建一个好的开发环境是非常重要的,能够为你的工作带来极大的便利。而在 Android 开发中,搭建一个好的开发环境也尤为重要。因为好的开发环境可以帮助你提高工作效率,减少出错率。于是,本篇文章将为大家介绍如何安装 Android 开发环境,
2023-05-23
hbuilder安卓开发教程
HBuilder是一款开源免费的移动应用开发工具,支持HTML/CSS/JavaScript开发安卓和iOS原生应用。本文旨在介绍HBuilder在安卓开发中的原理和详细教程,为初学者提供参考。一、HBuilder安装HBuilder官网可下载各个平台的安
2023-05-23
eclipse 安卓开发
Eclipse 是一种常用的集成开发环境(Integrated Development Environment,IDE)软件,被广泛用于 Java 开发。而 Android 开发常用的 IDE 就是 Eclipse,Android 平台的开发工具主要针对
2023-05-23
eclipse安卓开发教程
Eclipse是一款常用的开源综合集成开发环境,全名是"Eclipse Integrated Development Environment",是由Eclipse基金会开发的。Eclipse主要用于Java语言程序开发,且有很多插件可以支持开发其他语言的应
2023-05-23
开发安卓移动app注意
在开发安卓移动App时,需要注意以下几点原则:1. 整体用户体验(User Experience, UX)要优化。人性化的设计以及生动、直观、简洁的交互界面能够使用户更加愉悦地使用App,进而产生使用的“黏性”,增加用户粘留度。2. 所有功能都要实用。不要
2023-04-28
安卓开发外卖app
在这篇文章中,我们将介绍如何开发一个外卖类的安卓应用。我们将带您了解整个开发过程,从概念设计到功能实现。外卖应用是目前非常热门的一类应用,如美团外卖、饿了么等。这些应用为用户提供了很大的便利,手机轻轻一点,美食就能送到家门口。现在让我们开始吧。一、技术架构
2023-04-28
idea怎么开发安卓app
在本教程中,我们将介绍如何使用 IntelliJ IDEA 开发一个简单的安卓应用程序。以下是安卓开发的基本原理和详细步骤。原理:安卓开发的主要编程语言是 Java 和 Kotlin。IntelliJ IDEA 是一个强大的 Java 集成开发环境 (ID
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1