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


相关知识:
安卓9有开发者选项吗
安卓9(Android 9)是一种由Google推出的移动操作系统,其最新版本为Android 9 Pie。安卓9具有开发者模式(Developer Options),允许开发人员进入系统的高级设置,并使用其功能进行各种测试和调试。开发者模式的启用和禁用取
2023-05-23
安卓9
安卓系统9.0版本中,新增了一个开发者选项中的暗黑模式,该模式下系统各种界面和应用将呈现黑色主题,给人一种很舒适的视觉感受,而且有一定省电效果。下面我将简单介绍一下安卓9.0开发者选项的暗黑模式,包括其原理和使用方法。1. 原理安卓9.0的暗黑模式采用了系
2023-05-23
swift可以开发安卓软件
Swift 是一门苹果公司推出的编程语言,用于 iOS 和 macOS 应用开发。但如果想要在 Android 平台上使用 Swift 进行软件开发,需要先了解 Android 平台和 Swift 的关系。在 Android 平台上,Java 是主要的编程
2023-05-23
kt安卓开发
KT(Kotlin)是一种基于JVM的静态类型编程语言,旨在减少 Java 语言的某些设计缺陷,并在保持与 Java 100% 互操作性的同时提供更简洁,更安全,更可靠的编程方案。作为一种新兴的编程语言,KT在Android开发领域内的使用也越来越广泛。下
2023-05-23
java与kotlin开发安卓
Java和Kotlin都是广泛用于安卓应用开发的编程语言。它们都有自己的特点和优点,具有不同的编程风格和语法结构。在本文中,我们将着重介绍Java和Kotlin在安卓开发中的应用和功能。JavaJava是一种广泛使用的编程语言,由Sun Microsyst
2023-05-23
java后端和安卓开发的前途
Java后端和安卓开发是当前非常热门的领域,这些开发技术都是建立在Java编程语言基础上的。Java后端和安卓开发的前途非常广阔,下面将详细介绍一下。1. Java后端的前途Java后端开发是指利用Java语言开发服务器端应用程序。当前大多数互联网公司都需
2023-05-23
im安卓开发工具箱
IM安卓开发工具箱是专门为安卓开发者打造的一个集成化工具包,旨在为安卓开发者提供更加便捷高效的开发体验。工具箱主要包含以下几个方面的内容:1. 版本控制工具工具箱中集成了Git、SVN等版本控制工具,可以用于项目的代码管理和团队协作。Git是一个分布式版本
2023-05-23
app与安卓开发
APP(Application)指的是应用程序,是安装在手机或平板电脑等智能终端上的程序。而安卓开发则是指使用安卓操作系统进行开发的过程。在安卓系统中,应用程序是由多个组件组成的,包括Activity(活动)、Service(服务)、Broadcast R
2023-05-23
anglar安卓开发
Angular是一个开源的JavaScript框架,它由Google维护和更新。它可以帮助开发者们创建动态的单页应用程序(SPA)和Web应用程序。同时,Angular还包括其他许多功能,如依赖注入、路由、HTTP请求和响应、可重用组件和指令。在Andro
2023-05-23
安卓直播app制作
安卓直播APP的制作主要包括以下几个方面:1.选择开发工具:Android Studio是安卓应用开发的主流工具,如果你已经掌握了Java语言和安卓应用开发的基本知识,可考虑使用该工具进行直播APP的开发。2.确定功能模块:直播APP的功能模块主要包括用户
2023-04-28
安卓app线上开发
安卓App线上开发是一种利用云端技术,基于浏览器的集成开发环境,通过在线编写代码、编辑布局、进行调试和构建、发布等一系列软件开发活动的一种应用开发方式,由于它的简易性、灵活性和可定制性,越来越多的应用程序开发者倾向于使用它。以下是安卓App线上开发的原理和
2023-04-28
安卓app开发架构
安卓应用程序开发通常采用MVC架构,即模型-视图-控制器架构。MVC是一种常见的软件设计模式,可以有效地组织和管理应用程序的逻辑层、数据层和用户界面层,提高应用程序的可维护性、可重用性和可扩展性。模型(Model):模型层是整个安卓应用程序的核心部分,用于
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1