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


相关知识:
安卓6
安卓6.0开发板是一种具有开发和调试功能的工具,在安卓6.0系统上开发定制化的应用程序。本文将对安卓6.0开发板进行详细介绍。一、概述安卓6.0开发板是由基于ARM Cortex-A53 CPU架构的芯片驱动,配备了丰富的I/O接口和多种扩展接口的硬件开发
2023-05-23
安卓10开发环境
安卓是一个非常流行的操作系统,是开源的移动设备平台。作为一个安卓开发者,了解和配置好开发环境非常重要。下面我将为大家介绍安卓10开发环境的原理和详细介绍。**安卓开发环境的原理**安卓开发环境有三个核心组件:SDK、IDE和构建工具。1. SDK(Soft
2023-05-23
zigbee安卓开发
ZigBee是一种低功耗、无线网络协议,以低成本、高可靠性和简单配置为特点。它被广泛应用于家庭自动化、工业自动化、医疗设备、农业自动化等众多领域,是物联网时代的一个重要组成部分。本文将详细介绍ZigBee在Android开发中的原理和应用。一、ZigBee
2023-05-23
qt开发安卓用哪个版本
Qt是一个跨平台的应用程序开发框架,可以用于开发桌面程序、移动应用、嵌入式设备和Web应用。Qt支持多种操作系统,包括Windows、macOS、Linux、Android和iOS。在这些操作系统中,Qt支持的功能和API可能不尽相同,因此需要在不同的平台
2023-05-23
net6开发安卓
.NET 6 是微软发布的下一代开发平台,它可以用于构建跨平台的应用程序,包括桌面应用程序、Web 应用程序、移动应用程序等。当然,对于想要开发安卓应用程序的开发者来说,使用 .NET 6 也是非常方便的。.NET 6 开发安卓应用程序的原理是基于 Xam
2023-05-23
delphi开发安卓的原理
Delphi是一个可视化的可编程环境,它最初是为Windows开发设计的,主要用于快速开发Windows应用程序。不过,随着移动互联网的兴起,Delphi也可以用于开发跨平台的移动应用程序,支持iOS和Android等操作系统。Delphi开发安卓应用程序
2023-05-23
广州安卓app开发一般要多少钱
安卓App开发的价格因项目而异,因此无法给出具体数字。不同的项目具有不同的需求,比如设计复杂度、功能模块数量、后台数据库开发等等,这些因素会影响项目的工期和开发费用。一般来说,开发一个小型应用的费用可能在5万人民币左右,大型项目的价格可能在十几万到上百万不
2023-04-28
安卓开发版导出app
要导出安卓应用程序(即APK文件),你需要使用安卓开发者工具包(Android SDK)中的命令行工具或者集成开发环境(IDE)如Android Studio或Eclipse。以下是在Android Studio中导出APK文件的步骤:1. 打开你的项目并
2023-04-28
安卓app开发编辑配置文件
在安卓APP开发中,编辑配置文件是一个很重要的环节。配置文件为开发者提供了管理应用的逻辑结构、功能以及外观等方面的便利。本文将详细介绍安卓APP开发中配置文件的概念、作用以及配置文件的编辑方法。一、什么是配置文件在安卓APP开发过程中,配置文件(或称元数据
2023-04-28
安卓app开发公司如何选择
安卓app开发公司如何选择(原理与详细介绍)当您有一个好的app项目想法,让它变为现实的一种做法是寻找一家专业的安卓app开发公司。然而,市场上有无数这样的公司,如何正确地挑选,使你的项目质量和进度都能得到保障呢?在这篇文章中,我们将介绍从项目需求、公司实
2023-04-28
python开发安卓app
在安卓上开发应用程序,通常会使用Java或Kotlin.然而,Python也可用于安卓应用程序开发。Python使用Kivy框架来开发安卓应用程序,它是一个类似于传统HTML的语言,在Kivy中,我们通过编写.kv文件来实现界面的布局。一般开发安卓应用程序
2023-04-28
hbuilder开发安卓app
HBuilder开发安卓App:原理与详细介绍HBuilder是一款基于HTML、CSS和JavaScript等Web技术的开发工具,主要用于创建跨平台的移动App。HBuilder的核心优势在于它使得Web开发者能够使用他们所熟悉的技术来创建Androi
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1