安卓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
安卓 开发版
安卓开发版是指针对开发人员并提供的 Android 操作系统的定制版本,通常包括针对开发者的增强工具和功能,并具备更高的适应性、可定制性以及易使用性,以支持更多的开发需求。安卓开发版提供的工具和功能有:1. 软件开发包(SDK):提供了 Android 应
2023-05-23
web前端和安卓开发那个更好学
前端开发和安卓开发都是非常热门的IT领域,每个领域的学习难度和内容都不同。在选择学习前端开发和安卓开发之前,需要考虑自己的兴趣和未来的职业规划。下面从原理和详细介绍两个方面,对这两个领域进行比较,帮助大家更好地选择。一、原理1. Web前端Web前端开发指
2023-05-23
virtualbox 安卓模拟器开发
VirtualBox 是一款非常流行的虚拟机软件,它能够模拟多个操作系统。而安卓模拟器则是一种在 PC 上运行模拟安卓系统的软件。而使用虚拟机模拟安卓系统的方式也成为了一种常见的安卓模拟器解决方案。本文将介绍如何使用 VirtualBox 创建安卓模拟器。
2023-05-23
visualstudio开发安卓程序
Visual Studio 是一个由 Microsoft 所提供的强大开发环境,可以用于开发各种应用程序,其中包括安卓应用程序。如果开发者熟悉 .NET 开发,那么学习使用 Visual Studio 来开发安卓应用程序会非常容易。在本文中,我们将介绍如何
2023-05-23
sdk安卓开发岗位
Android SDK是针对Android系统的软件开发工具包,它包含了Android系统开发所需的各种工具和资源,可以帮助开发者构建优秀的Android应用程序。在Android开发者中,SDK是很常见的的词汇,经常被提及,但对于新手来说可能会感觉有些含
2023-05-23
miui开发版安卓9
MIUI是小米公司自主研发的操作系统,于2010年首次推出。经过多年的发展,MIUI已经成为一款十分成熟和完善的操作系统,其中的开发版是一个比较特别的版本,它提供了最新的功能和更新,但是也可能存在未知的问题和不稳定性。本文将详细介绍MIUI开发版的原理和特
2023-05-23
安卓移动app与机顶盒开发区别
标题:安卓移动App与机顶盒开发区别详解摘要:本文将介绍安卓移动App和安卓机顶盒App开发的区别,从原理、应用场景与开发技巧等角度展开探讨,并为入门开发者提供基础知识和实用技巧。一、安卓移动App与机顶盒开发的背景简介1. 安卓移动App:通常运行在手机
2023-04-28
安卓屏保app开发
安卓屏保app是一种用于保护用户隐私和节省电池使用的应用程序。它可以覆盖设备的屏幕,避免未经授权的访问,同时在屏幕保护的过程中,可以降低设备电池的消耗。下面是安卓屏保app的原理介绍:1. Android系统中提供了一个屏保服务,应用可以通过该服务来完成屏
2023-04-28
安卓上app如何开发
安卓应用开发是一个涉及多个领域技术的过程,从设计界面、编写代码到发布应用在市场上,需要掌握安卓开发平台、编程语言、设计工具等多方面的知识。下面,我将详细介绍安卓应用开发的基本原理和一些重要概念。1. 准备工作在开始安卓应用开发之前,你需要安装Android
2023-04-28
万安安卓app开发
Android应用程序开发是一种面向Android移动设备的软件开发过程,常常使用Java编程语言和Android SDK。它是指在Android平台上使用各种工具来建立动态的应用程序。由于Android系列系统的开放性,开发者可以使用丰富的API来开发功
2023-04-28
linux制作安卓app
在Linux系统中制作安卓app,一般有两种方法:使用Java开发工具、手动编译源码。1. 使用Java开发工具Java开发安卓应用是官方推荐的制作安卓app的方法,适合初学者入门。具体步骤如下:1)安装Java开发工具Android Studio,它是G
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1