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


相关知识:
安卓9
Android 9.0是谷歌公司为移动设备推出的最新操作系统。相比于之前的版本,Android 9.0引入了一系列新特性和优化,提升了应用程序的性能和用户体验。下面我将介绍几个最为显著的新特性。1. 强化隐私保护在Android 9.0中,谷歌引入了更加严
2023-05-23
安卓11怎么退出开发者模式手机版
安卓11是2020年9月发布的最新安卓系统版本,为开发者提供了更丰富的功能和调试工具。开发者模式是其中一个非常重要的功能,它给予用户更多的控制权,包括允许用户调整进程优先级、启用A/B系统分区等。但当你完成开发工作后,退出开发者模式也是非常必要的,本文将详
2023-05-23
python能不能安卓开发
Python是一种高级编程语言,与其他编程语言不同,它结构清晰、语法简洁、易于学习和使用,同时还拥有丰富的第三方库和模块,可以应用于多种领域,例如,科学计算、Web开发、桌面应用程序等。虽然Python在移动应用开发方面相对不那么流行,但它确实有能力在An
2023-05-23
note9pro开发版安卓11最后一个包
笔者来介绍一下note9pro开发版安卓11最后一个包的情况。首先,介绍一下Note 9 Pro,这是小米公司旗下的一款智能手机,于2020年发布。其搭载的MIUI操作系统是基于Android深度定制而来的。在2021年初,小米公司开始为Note 9 Pr
2023-05-23
libgdx安卓开发教程
Libgdx是一个开源的跨平台游戏开发框架,它适用于Windows,macOS,Linux,iOS,Android和WebGL,能够帮助游戏开发者快速构建2D和3D游戏,并且安卓开发是其支持平台之一。接下来我将为大家介绍libgdx在安卓开发当中的原理和详
2023-05-23
java开发工程师和安卓开发工程师
Java开发工程师和安卓开发工程师都是软件开发领域的职业,虽然他们有着相同的开发语言,但是他们的工作职责和技能要求还是有所不同的。Java开发工程师Java开发工程师是指那些将Java语言用于企业级应用开发的专业人员。Java是一种面向对象的编程语言,最初
2023-05-23
idea安卓开发环境的搭建
Idea是一款非常流行的Java开发工具,可以支持各个平台的开发,在Android开发中也有广泛的应用。下面我们来介绍一下如何搭建Idea安卓开发环境。第一步:下载并安装JDKIdea开发环境需要JDK的支持,所以在安装Idea之前,需要先下载并安装JDK
2023-05-23
eloctron开发安卓
Electron是一个迅速发展的跨平台桌面应用程序开发框架,由GitHub公司主导开发,它采用Web技术进行开发,也就是说它可以使用HTML、CSS、Javascript等网页技术来设计和开发桌面客户端应用。因此它可以使用一个代码库来构建多个平台的应用,如
2023-05-23
现在安卓app用什么开发比较好
安卓App的开发语言主要有Java和Kotlin两种,其中Java是使用最广泛的一种语言。以下是几种比较常用的安卓App开发工具:1. Android Studio:这是官方提供的开发工具,使用Java或Kotlin语言。Android Studio建立在
2023-04-28
开发安卓app需要学java吗
当谈论开发安卓应用时,Java 是一个必不可少的编程语言。但是,根据最新的趋势和技术,开发人员也有其他选择。本文将详细介绍为什么需要学习 Java 来开发安卓应用,以及其他可用的方法和工具。为什么需要学Java?1. 广泛应用:Java 是创建 Andro
2023-04-28
开发安卓手机app
开发安卓手机应用程序(APP)是一个涉及多个步骤和组件的过程。这篇文章将为您介绍应用程序的开发原理和详细过程,涵盖了从构思到实现到发布的各个阶段。1. 熟悉Android平台开始开发Android应用程序之前,您需要了解Android平台的基础知识和特性。
2023-04-28
安卓app开发需要什么基础
安卓(Android)是一种基于Linux的操作系统,主要用于移动设备和智能手机。如果你想开发安卓应用程序,你需要具备以下基础知识:1. Java编程语言:安卓应用程序主要使用Java语言编写。了解Java编程语言并掌握基本的编程概念,如变量、方法、类和对
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1