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


相关知识:
s安卓10开发者预览版又更新啦
安卓10开发者预览版已经更新至第三个版本(Beta 3),这个版本新增了一系列功能,还修复了一些问题,下面我们来看一下具体情况。Beta3新增功能1. 系统底层优化这是一个非常重要的改进,安卓10加强了应用与系统之间的交互,提升了设备的稳定性和性能表现。2
2023-05-23
stm32安卓开发
STM32是一款应用广泛的微控制器,而安卓作为目前最流行的移动操作系统,两者的结合可以实现很多有趣和实用的项目。在本文中,我们将详细介绍如何在STM32上进行安卓开发。具体来说,我们将介绍以下内容:1. STM32的特点和应用领域2. 安卓开发的基础知识和
2023-05-23
macair安卓开发
MacAir作为一款很受欢迎的笔记本电脑,很多人会想用它来进行Android开发。虽然MacAir系统是基于Unix的,但是它不能像Windows一样安装ADT插件进行开发,因为它本身并不支持Java开发环境。但是,我们可以使用一些其他的工具来进行Andr
2023-05-23
lua 开发安卓app
Lua是一种高级编程语言,具备轻量级、跨平台、可嵌入和可扩展等特点。Lua可以通过C语言调用,因此、Lua被广泛应用于嵌入式系统和游戏开发领域。移动开发也是Lua的一个重要应用场景,其中,开发基于Lua的Android应用程序也是其中的一种。本文将详细介绍
2023-05-23
android安卓开发常用
Android作为目前全球使用最广泛的移动操作系统,其开发对于程序员来说具有很高的价值。从安卓开发的基本原理到详细介绍常用的开发框架和工具,都是安卓开发者需要了解的重要内容。一、基础原理1. Android运行机制Android系统是一个基于Linux的开
2023-05-23
aide安卓开发第十二课
在Android开发中,为了提高开发效率和代码质量,通常会使用一些第三方的辅助开发工具。其中,使用AIDE是一种非常常见的方式。AIDE是一款Android IDE,可以在安卓设备上进行Java和XML开发。它继承了Android Studio的核心,提供
2023-05-23
安卓电商app开发机构
安卓电商APP开发机构是指专门从事安卓电商APP设计、开发、测试、推广等工作的专业机构。随着移动互联网的发展和普及,手机APP已经成为电商行业中不可或缺的一环。而安卓手机作为市场占有率最高的手机系统,也成为了电商APP开发的重点。安卓电商APP开发机构通常
2023-04-28
安卓开发一个商城app多少钱
安卓开发一个商城APP的成本取决于许多因素,如开发团队、功能需求、设计要求、测试和维护等。在这篇文章中,我将为您详细解释一个商城APP所需的主要成本和相关原理。1. 开发团队开发团队可以是一个内部团队,也可以是外包给第三方公司。外包团队的成本可能会更低,但
2023-04-28
安卓app开发主流工具是什么
安卓App开发主流工具包括以下几种:1. Android Studio:Android Studio是谷歌推出的官方IDE,集成了许多辅助开发工具,如模拟器、调试器等。它是一个基于JVM的IDE,并默认集成了Gradle构建系统、XML编辑器等。2. Ec
2023-04-28
免费安卓app开发平台
标题:免费安卓app开发平台:原理与详细介绍导语:随着智能手机的普及,越来越多的人有了开发安卓应用的需求。为了帮助初学者快速入门,本文将详细介绍免费安卓app开发平台的原理以及一些典型的免费开发工具和服务。一、免费安卓应用开发平台的原理安卓应用开发平台提供
2023-04-28
做安卓app开发
安卓应用开发是对Android操作系统平台上的设备进行软件开发的过程。Android是一个由谷歌开发并维护的开放源代码移动操作系统,基于Linux内核。它的设计旨在用于各种智能手机和平板电脑设备等。下面将向您介绍Android应用程序开发的基本原理和详细过
2023-04-28
java安卓app用什么软件打包
在Java安卓开发中,打包可以使用Android Studio中自带的工具Gradle来完成。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具,可以支持简单的Java项目到复杂的企业级Java项目的构建和部署。具
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1