安卓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是Google推出的最新操作系统版本,是很多Android手机用户期待已久的更新版本。在安卓11中,开发者模式和以前的版本一样也是隐藏的。想要开启开发者模式需要进行一定的操作。接下来本文将会为你详细介绍安卓11开发者模式的开启方法以及开发者模式的具
2023-05-23
安卓11开发者有哪些功能可以用呢
Android 11是谷歌公司的最新移动操作系统版本,在2020年9月正式发布。这一版本的安卓系统主要集中在提升用户体验,同时提供更多的便利和安全保障。同时,Android 11的开发者也将会受益于一系列的新功能。下面将介绍安卓11开发者可以使用的一些重要
2023-05-23
vscode支持安卓应用开发吗
VS Code是一个轻量级的IDE,它不仅支持各种语言的代码编辑,同时也支持各种插件的安装,扩展其功能。其中,对于安卓应用开发而言,VS Code是一个强有力的工具。VS Code通过安装相关插件,就可以支持安卓应用开发,包括但不限于XML和Java代码编
2023-05-23
java方向也是做安卓开发吗
Java 是一种面向对象的编程语言,可以用于各种系统和应用程序的开发,包括 Android 应用程序的开发。在 Android 应用程序的开发中,Java 是一种主要的编程语言。虽然 Android 应用程序也可以使用其他编程语言进行开发,如 Kotlin
2023-05-23
amd做安卓开发
AMD,即Advanced Micro Devices Inc.,是一家计算机芯片制造商,主打的芯片类型包括CPU和GPU等。虽然AMD主要是以PC和游戏设备的CPU和GPU产品为主,但其芯片设计和技术在移动设备和手机等领域的应用也越来越广泛。本文将详细介
2023-05-23
易安卓蓝牙app开发
易安卓蓝牙app开发是指利用易安卓平台(Eclipse + ADT)开发能够与蓝牙设备进行数据交互的应用程序。蓝牙是一种近距离的无线通讯技术,它能够在短距离内实现低带宽信息的传递,如从手机到耳机的音频数据,或者从手机到心率检测设备的生命体征数据等。而易安卓
2023-04-28
开发的安卓app怎样打包的
安卓应用程序打包主要分为两个步骤: 编译和签名。## 1. 编译安卓的应用程序以Java语言编写。当应用程序的代码和资源准备好后,android SDK会自动将所有的Java源文件编译成Dalvik字节码,然后将它们打包成一个.apk文件。应用程序中的用户
2023-04-28
安卓开发app界面
Android开发的APP界面可以使用XML文件来描述,其中包含了各种控件和布局,以及它们的属性和样式。在这里,我将详细介绍安卓APP界面的原理和开发流程。1. 使用XML文件布局界面在安卓开发中,使用XML文件描述界面布局是最常见的方法。XML文件通过标
2023-04-28
安卓多开app制作
安卓多开指的是在一个手机设备上同时运行多个同款应用程序。这里介绍两种安卓多开的实现方法。方法一:使用第三方多开工具第三方多开工具是一种可以让用户轻松实现在一个设备上运行多个同款应用程序的软件。市面上有许多第三方多开工具,例如Parallel Space、G
2023-04-28
安卓ide开发app
安卓IDE开发APP:原理和详细介绍安卓(Android)是一种基于Linux的开源操作系统,专为移动设备如智能手机和平板电脑设计。要开发安卓APP,首先需要了解所需的工具和技术。本文将详细介绍安卓APP开发的工具,原理以及步骤。一、常见的安卓IDE集成开
2023-04-28
地图方面的安卓app开发
地图是安卓应用中常见的功能之一,可以帮助用户更好地了解地理位置以及路径规划。在安卓应用中集成地图功能,需要使用第三方地图API,其中比较常见的API包括百度地图API、高德地图API和谷歌地图API。以下是一些主要步骤和原理:1. 注册开发者账号:在使用第
2023-04-28
ionic开发安卓app
title: 了解Ionic开发安卓APP的基本原理和详细介绍摘要:Ionic是一款用于构建可扩展、跨平台移动应用的程序开发框架。本文将介绍Ionic如何应用于开发安卓应用的基本原理,以及涉及的一些关键技术和概念。一、Ionic是什么?Ionic是一个开源
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1