安卓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中,退出开发者模式并不是一个复杂的过程,大致可以分为两种方法,具体行动请见下文。第一种方法:通过设置菜单退出开发者模式1. 打开手机的“设置”应用程序。2. 滚动找到“关于手机”选项,并点击它。3. 在“关于手机”选项菜单中,找到“版本号”选项,
2023-05-23
安卓11开发者模式在哪里
安卓11开发者模式是一个用于帮助开发人员进行调试和测试的高级功能模式。它允许开发人员进入设备的系统设置,并启用一些高级功能,例如USB调试、CPU使用情况、GPU呈现和其他调试功能。在安卓设备上启用开发者模式很简单。只需按照以下步骤进行操作即可:1. 在安
2023-05-23
nokia开发安卓
Nokia作为一家著名的手机制造商,在早期的手机市场中曾有着重要的地位。然而,随着智能手机的兴起,其市场份额逐渐被其他品牌所取代。为了重新站稳脚跟,Nokia于2017年推出了一款基于安卓系统的智能手机——Nokia 6。本文将介绍Nokia开发安卓系统的
2023-05-23
mix2升级安卓p开发版
Mix2是小米公司推出的产品,它是一款安卓手机。随着小米手机公司不断研发,Mix2的升级版本也不断推出,其中最受用户欢迎的就是安卓P开发版。如何升级Mix2到安卓P开发版呢?下面我们来介绍一下。一、升级前准备在升级之前,我们需要确认以下几个要点:1.确认手
2023-05-23
lua开发安卓app
Lua是一种轻便高效的脚本语言,它被广泛应用于游戏开发、嵌入式系统、图形应用和移动设备上的应用程序中。在Android平台上,Lua也常用于开发一些小型应用程序,例如游戏和插件等。一、Lua for Android在Android上使用Lua需要安装Lua
2023-05-23
kylix安卓开发
Kylix是一款基于Delphi可视化编程环境的开发工具,主要用于Linux操作系统下的开发。而在Kylix的基础上,我们也可以使用它来进行安卓开发。在这篇文章中,我将会介绍Kylix安卓开发的原理和详细步骤。### 原理介绍Kylix的安卓开发需要借助于
2023-05-23
android安卓开发学习笔记
Android是一种开源的移动操作系统,已成为全球最流行的移动设备操作系统之一。若想了解Android的原理及其开发方式,下面是一份详细的学习笔记。1. Android系统架构Android系统架构主要分为四部分,包括应用层、应用框架层、系统运行库层和Li
2023-05-23
29岁了想转行学习安卓开发
近年来,移动互联网行业的发展迅猛,安卓开发成为人们热门的转型领域之一。如果你有计算机相关专业的基础知识,那么转行学习安卓开发是可行的。本篇文章将介绍安卓开发的原理和详细内容。安卓开发的原理安卓开发是建立在 Java 编程语言之上的移动应用程序开发,主要依赖
2023-05-23
杭州安卓app开发价位表
杭州安卓App开发的价位一般会根据项目的需求和具体开发难度来决定。下面是一些可能影响安卓App开发价位的因素:1. 应用程序功能的复杂性如果应用程序涉及到需要复杂的算法或是需要与其他服务进行集成,那么在开发过程中可能需要耗费更多的时间和资源。因此,这会对项
2023-04-28
开发一个自己用的安卓app
开发一个自己用的安卓应用程序需要以下步骤:1. 定义应用的需求和功能在开始开发应用程序之前,需要定义应用程序所需要实现的功能,比如是一个新闻阅读应用、日常任务清单应用或是健康管理应用等,需要将这些功能具体化并列出清单。2. 选择开发工具安卓应用程序开发需要
2023-04-28
app打包安卓软件
打包安卓软件的过程,简单来说就是将开发完成的安卓应用程序打包成一个可安装的.apk文件,让用户可以直接下载、安装和使用。打包安卓软件的具体步骤如下:1. 编写代码和资源文件:先根据需要,使用Java语言和安卓开发工具,编写应用程序需要的代码和资源文件。2.
2023-04-28
2023年企业再开发移动APP还有机会嘛?
2023年企业再开发移动APP还有机会嘛? 作为当下主流的营销工具,移动应用已成为企业竞争的必备利器,它与微信同样在移动营销中扮演着越来越关键的角色。如今大部分企业已经认识到企业移动应用和为微信2者互为补充,这关系到企业在未来几年的移动互联网市场中能否顺利发展,所以企业移动应用和微信营销两手抓是当前企业营销工作的重点。
2023-02-10
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1