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


相关知识:
安卓11开发者文档
安卓11是2020年宣布推出的最新版本,针对安卓系统的软件和应用程序进行了改进和优化,提高了设备的性能和安全性。以下是安卓11的主要特点和改进:1. 改进隐私和安全性在安卓11中,Google更加注重用户的隐私和安全性。平台现在提供了更多的隐私保护措施,包
2023-05-23
java开发转安卓
Java开发转安卓可以说是一种非常流行的开发方式,Java作为一种非常优秀的编程语言,被广泛应用于企业开发、移动应用开发等方面。而Android系统则是目前全球市场份额最大的移动操作系统,在移动领域也有非常广泛的应用和需求。那么,如何将Java开发技能转换
2023-05-23
java安卓开发中
Java是一种面向对象的编程语言,广泛用于开发安卓应用程序。安卓是一种基于Linux的操作系统,主要设计用于移动设备,如智能手机和平板电脑。下面将介绍Java安卓开发的一些基本原理和详细介绍。一、Java安卓开发的环境1. JDK: JDK(Java De
2023-05-23
app开发包上架安卓市场
在当今移动互联网时代,应用程序(App)的重要性不言而喻。而开发者也逐渐意识到将自己的应用上架到应用市场上的重要性。其中最常用的应用市场之一便是安卓市场,许多开发者也希望自己的应用能够被上架到安卓市场中。那么,App开发者应如何将自己的应用程序上架到安卓市
2023-05-23
2020火山安卓开发教程
火山安卓开发是指基于抖音短视频服务的安卓应用开发。该应用可以提供类似于抖音短视频的功能和体验,包括浏览、搜索、上传、回放等。在本篇文章中,我们将介绍2020年的火山安卓开发教程,包含其原理和详细介绍。1. 开发环境搭建在开始火山安卓开发之前,需要准备好开发
2023-05-23
安徽安卓系统app定制开发报价方案
文章标题:全面解析安徽安卓系统App定制开发报价方案文章概述:本文将详细介绍安徽安卓系统App定制开发的报价方案,并解析其构成原理及细节。结合市场现状,为您提供专业的定制开发建议。正文:一、安徽安卓系统App定制开发概述随着移动互联网的飞速发展,越来越多的
2023-04-28
安卓app直播平台开发
安卓APP直播平台开发涉及到许多技术和知识点,本文将为您详细介绍直播平台的开发原理和关键技术,使您能够快速入门。一、直播平台核心技术1. 音视频采集:使用Android的Camera和AudioRecord API,从摄像头和麦克风采集音视频数据。2. 音
2023-04-28
安卓app常用开发工具
在本文中,我们将介绍一些在安卓应用开发过程中常用的开发工具,以及它们的原理和详细介绍。这些工具将帮助您更轻松地开发和调试Android应用程序。1. Android StudioAndroid Studio 是Google官方提供的安卓应用开发集成环境(I
2023-04-28
安卓 原生app 开发
Android原生App开发是指使用Android SDK和Java编程语言进行开发,不依赖于第三方框架或库。原生App的优点包括快速、稳定、可靠、易于维护和兼容性强等。以下是Android原生App开发的基本原理和详细介绍:1. 开发环境搭建首先需要在电
2023-04-28
天津安卓app开发外包
天津安卓app开发外包是指在天津地区寻找一个专业的安卓应用开发公司,把自己需要创建的安卓应用项目外包给这类公司,让他们负责项目的整个开发过程。在这篇文章中,我们将详细介绍天津安卓app开发外包的原理、优势、挑选标准及项目流程。一、安卓app开发外包原理安卓
2023-04-28
合肥开发安卓app公司
合肥现在有很多专业的移动应用开发公司,其中包括很多开发安卓应用的公司。这些公司可以为客户提供从需求分析、产品设计、软件开发、上线发布和应用维护等全流程的服务。作为一家开发安卓应用的公司,他们主要会使用Java、Kotlin和C++等编程语言,通过安卓应用开
2023-04-28
为什么开发安卓app要搭建框架
开发安卓应用程序需要采用一定的结构和规范,这就需要搭建应用程序的框架。框架可以看作是一种开发工具,它提供了代码结构、编译、调试和测试等方面的支持,使得开发人员能够更好地完成应用程序的开发。下面是开发安卓应用程序需要搭建框架的详细介绍:1. 编写代码需要统一
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1