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


相关知识:
安卓 开发者平台
Android开发者平台是一个包含了各种工具和资源的在线平台,旨在帮助开发者建立、测试和发布高质量的Android应用程序。将开发者平台集成到您的Android开发流程中,可以大大提高您的生产力,简化流程,减少重复劳动,并加快发布速度。安卓开发者平台主要由
2023-05-23
miui12
MIUI 12.5是小米推出的最新一代手机操作系统,它基于Android 12开发,强调对系统性能和用户体验的优化。MIUI 12.5的开发版已于2021年12月8日发布,用户可以在小米社区下载安装。本文将详细介绍MIUI 12.5安卓12开发版的原理和功
2023-05-23
ka开发电子花木兰安卓版
电子花木兰是一款针对女性用户打造的移动在线教育平台,提供了多种课程、资讯、社区等功能。在移动设备上,用户方便快捷地随时随地轻松获取知识,每位用户都可以成为学习平台的一份子。在这款应用的开发中,我们采用了Android移动端框架,实现了跨平台、模块化、优秀的
2023-05-23
java可以开发安卓
Java是一种跨平台的编程语言,这意味着Java编写的程序可以在不同的操作系统上运行。由于其跨平台的特性,Android操作系统也使用了Java。安装在Android系统上的Java被称为Dalvik虚拟机,它是由Java虚拟机(JVM)演化而来的一个独立
2023-05-23
c能开发安卓app
C语言作为一门比较古老的编程语言,它的优点是运行效率高,功能强大,支持跨平台等等。在安卓开发中,C语言也扮演了很重要的角色,它可以作为安卓底层开发的一种选择,可以通过一些框架和工具来实现安卓应用的开发。原理在安卓开发中,C语言可以通过NDK(Native
2023-05-23
苏州安卓开发app服务客户
在这篇文章中,我们将详细介绍苏州安卓开发 App 服务客户的原理以及详细介绍其工作内容。安卓开发是一项涉及计划、设计、开发、测试、部署和维护定制安卓移动应用软件的服务。若您希望为自己的企业或项目开发安卓应用,理解以下内容将帮助您更好地与开发团队沟通并确保项
2023-04-28
福鼎安卓app开发多少费用
福鼎安卓APP开发费用的定价因开发者的经验和能力不同而有所不同,一般来说,APP开发的费用主要包括技术开发费和维护费用。在福鼎,APP开发的费用大约在数千到数万元之间。以下是APP开发的一些基本流程和相关费用的介绍:1. 需求分析和功能确定阶段。这一阶段是
2023-04-28
安卓商城app开发方案
安卓商城App开发方案(原理或详细介绍)在现代社会,手机App已经成为了人们生活的重要组成部分,其中商城App因为购物便捷性和实时性特点备受消费者喜爱。本文将详细介绍安卓商城App的开发方案,并分析其原理及组成部分。一、技术架构1. 前端技术:Androi
2023-04-28
安卓wifi app开发
安卓wifi app开发需要了解安卓系统中与wifi相关的API接口,以及wifi相关权限的申请、协议等内容。下面简单介绍一下wifi相关的几个API接口:1. WifiManager类:主要用于在安卓系统中的Wifi服务与WLAN驱动之间进行控制,提供了
2023-04-28
安卓app开发软件工具下载
在开始进行安卓应用开发之前,你需要为环境搭建作准备。针对安卓应用开发,有几个关键的软件工具需要您下载和安装。以下是这些工具的简要介绍和下载链接,使用这些工具,会使您的开发过程更加流畅。1. Java Development Kit (JDK)JDK 是Ja
2023-04-28
佳木斯app安卓开发
佳木斯APP安卓开发指的是在佳木斯这一区域范围内进行的安卓手机应用程序开发。本文将为您介绍安卓开发的原理以及一些详细的信息,使您更了解如何开发一个安卓APP。一、安卓开发原理安卓(Android)是一种基于Linux的现代移动操作系统,它支持触摸屏、键盘、
2023-04-28
pyqt5 app 安卓 开发
PyQt5 是 Python 语言下的一款 GUI 库,可以用于开发桌面应用程序。同时,PyQt5 还可以打包成 Android 应用,并在 Android 平台上运行。制作安卓应用主要分为以下几个步骤:1. 安装必要的工具和环境在开始之前,需要在电脑上安
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1