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


相关知识:
安卓91开发教程
安卓91是一款安卓逆向工程工具,可用于修改、编译、打包、签名等操作。下面就为大家详细介绍一下安卓91开发教程。一、设置安卓SDK环境安卓91需要使用安卓SDK进行编译和打包操作,因此首先需要设置好SDK环境。打开AndroidStudio,选择File -
2023-05-23
rust 开发安卓
Rust 是一种具有内存安全和线程安全特性的编程语言,其在安全性、稳定性和并发性方面具有显著优势。因此,Rust 也可以用于开发 Android 应用程序。在本文中,我们将详细介绍如何使用 Rust 开发 Android 应用程序。首先,我们需要使用 Ru
2023-05-23
php和安卓开发
PHP是一种基于服务端的脚本语言,通常用于Web开发,但也可用于通用编程。PHP编程语言是一种开源免费的脚本语言,它可以在各种操作系统上工作,比如:Windows、Linux、Unix、Mac OS X等。PHP可以编写服务器端代码,但HTML和CSS通常
2023-05-23
oppo安卓12怎么进入开发者模式调试
开发者模式是Android手机的一项隐藏功能,它提供了许多高级选项和调试工具,可以帮助我们更好地定位问题和优化系统。如果你是一名Android开发者或者技术爱好者,那么开启开发者模式将让你受益匪浅。下面是Oppo Android 12如何进入开发者模式调试
2023-05-23
mldn安卓开发教程
MLDN是一家致力于在线IT培训的教育机构,提供了各种网络课程来满足学生的需求。其中,包括有关于安卓开发的教程。接下来,我们就来详细介绍一下MLDN的安卓开发教程。安卓开发教程的基本介绍MLDN的安卓开发教程是一种包含知识普及和基础教程等各种类型的在线课程
2023-05-23
csdn 安卓开发
安卓(Android)是由Google推出的开源移动设备操作系统,其应用广泛,覆盖了各个领域。安卓开发是针对安卓操作系统进行应用开发,可以利用安卓开发平台,使用Java作为开发语言,在安卓设备上构建应用程序。本文将深入讲解安卓开发的原理和详细介绍。一、安卓
2023-05-23
面试安卓app开发实习生
作为一名安卓app开发实习生,你需要掌握以下几方面的知识:1. Java或Kotlin语言:安卓app的开发通常会使用Java或Kotlin语言编写,需要掌握语言的基础知识和语法规则。对于Kotlin,需要特别掌握其协程、扩展函数、数据类等特性。2. 安卓
2023-04-28
开发安卓app有前途吗
开发安卓应用在当今的科技世界中确实是一个有前途的职业。在全球范围内,安卓手机设备的数量众多,市场份额较高,因此安卓应用开发者有着巨大的市场需求。为了充分了解安卓开发的前景,我们首先应该了解安卓开发的基础知识,随后介绍相关的发展趋势和技能需求。1. 安卓系统
2023-04-28
开发ios和安卓app
开发iOS和安卓App的原理与详细介绍在当今的技术环境下,移动应用(App)已经成为人们生活中不可或缺的一部分。无论是iOS还是Android,它们都提供了一个丰富且不断扩展的应用生态系统,在这篇文章中,我们将探讨如何开发iOS和安卓App的原理和详细介绍
2023-04-28
安卓手机app开发平台有哪些
在当今的移动设备市场上,安卓手机占据了很大的份额,因此,安卓应用程序开发成为了许多开发者的主要关注点。让我们一起了解一下几个常见的安卓手机App开发平台以及它们的原理和详细介绍:1. Android Studio Android Studio 是谷歌官
2023-04-28
安卓app开发相关技术
安卓APP开发涉及到多种技术,本文将从原理与详细介绍几个方面,为你提供一个安卓APP开发的基本指南。1.安卓APP开发原理:安卓是一种基于Linux操作系统的开放源代码平台。开发者可以利用Java编程语言结合安卓应用程序开发工具包(SDK)中提供的库来创建
2023-04-28
安卓app开发工作职责
Android app开发工程师的职责包括以下内容:1. 熟悉Android开发框架:Android开发工程师需要熟悉安卓的开发框架,包括Android SDK、Java编程语言、XML等。2. 独立开发应用程序:根据客户需求,开发自己的应用程序,实现应用
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1