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


相关知识:
安卓10开发者模式怎么长截屏
安卓10版本以后,系统增加了长截屏的功能,可以截取整个页面,非常方便。下面详细介绍如何使用长截屏功能。首先,进入设置,找到开发者选项。在开发者选项中,找到"截屏"选项,进入设置。在截屏设置中,选择"长截屏"选项,打开开关。此时已经开启了长截屏功能。在需要截
2023-05-23
安卓 nfc 开发
NFC是一种近场通信技术,它基于高频无线电信号,支持短距离的无线数据传输。安卓系统中内置了NFC模块,可以通过NFC实现移动支付、刷卡等功能。此外,在安卓应用程序中集成NFC功能也非常简单,下面将介绍如何在安卓应用程序中使用NFC开发。NFC工作原理NFC
2023-05-23
wpf安卓开发
WPF(Windows Presentation Foundation)是一个框架,可以使开发人员创建各种Windows应用程序。WPF是一种用于创建Windows桌面应用程序的技术,它具有多种功能和强大的图形处理能力,可以创建各种漂亮的UI界面。Andr
2023-05-23
tiny4412开发板是安卓系统吗
Tiny4412开发板是一款嵌入式开发板,基于四核Cortex-A9处理器,开发板上运行的主要是Linux或Android操作系统。但是,开发板本身并不是一个操作系统,而是一个硬件平台,它可以支持运行各种不同的操作系统。第一代Tiny4412开发板是在20
2023-05-23
简单的安卓app开发实例
Android app开发需要掌握Java编程语言以及Android平台的基础知识。以下是一个简单的安卓app开发示例:步骤1:创建一个新的Android项目打开Android Studio,选择File -> New -> New Project来创建一
2023-04-28
安卓开发小说app源码
安卓开发小说app的源码,一般涉及到以下几个主要的方面:1. 界面设计:开发一个小说app首先要设计一个美观而且简洁的界面。其中包含的元素比较丰富,如界面布局、颜色、字体、图标等等。2. 数据存储:小说app需要存储大量的小说章节数据,一般使用SQLite
2023-04-28
安卓导航app开发
安卓导航app主要是利用GPS(全球定位系统)定位技术,通过收集用户的位置信息,为用户提供导航服务。具体实现流程如下:首先,我们需要获取用户的GPS位置信息。我们可以使用Android系统提供的`LocationManager`类来获取用户位置信息。该类提
2023-04-28
安卓app开发获取短信权限
在Android应用程序中获取短信权限的原理非常简单。Android设备的所有权限都在AndroidManifest.xml文件中声明。为了获得读取短信的权限,我们需要在AndroidManifest.xml文件中添加以下代码:```xml```通过添加这
2023-04-28
制作计时器安卓app教程
制作计时器安卓app需要了解基本的安卓应用程序开发知识,包括安卓的UI设计和基本的Java编程语言。下面将介绍该如何制作一个简单的计时器安卓应用程序。1. 创建一个新的安卓项目首先,在您的Android Studio中创建一个新的Android项目。命名为
2023-04-28
佛山安卓商城app开发公司怎么样
佛山是中国广东省的一个城市,拥有众多的软件开发公司。如果您正在寻找一家安卓商城app开发公司,那么您可以考虑以下建议:1. 首先,您可以通过互联网搜索引擎或询问当地的商业协会和工商局,了解佛山的安卓商城app开发公司列表。2. 您可以通过询问身边有经验的技
2023-04-28
app打包安卓
打包安卓应用程序主要是将应用程序代码、资源、库文件等文件打包成一个.apk文件,供用户下载或传输到Android设备上安装。以下是打包安卓应用程序的原理或详细介绍:1. 开发应用程序首先,需要根据应用程序的需求开发应用程序。开发过程中,需要使用适当的开发工
2023-04-28
app制作器安卓版
APP制作器(App Maker)是一种可以帮助用户制作自己的应用程序的工具。对于不会编程语言的人来说,使用APP制作器可以简单快速地创建自己的移动应用程序,而无需具备高级编程知识。APP制作器的原理是通过提供一个可视化的开发工具来帮助用户生成应用程序。用
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1