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


相关知识:
安卓12进入开发者模式
首先介绍一下什么是开发者模式。开发者模式是 Android 操作系统提供的一项功能,它可以让用户开启一些系统级别的开发者选项,例如 USB 调试、布局边界、虚拟位置等。这些选项通常是为 Android 应用程序的开发和测试设计的。开发人员可以通过开发人员选
2023-05-23
安卓10系统开发者选项怎么打开
在Android 系统中,有一个非常重要的功能叫做“开发者选项”,它为 Android 开发者提供了很多有用的功能,例如开启 USB 调试、查看应用程序细节、模拟位置等等。但是,“开发者选项”默认是隐藏的,如果你想打开它,需要进行一些简单的操作。接下来,我
2023-05-23
安卓 app 开发 报价
安卓app开发一般包括设计、开发和测试三个阶段。设计阶段包括需求分析、市场调研、用户体验设计和界面设计。开发阶段则涉及对于应用程序的扩展、设计代码和交互实现。测试阶段则是检验开发完成的应用程序是否存在问题和优化。在进行安卓app开发的过程中,需要掌握一定的
2023-05-23
tc安卓脚本开发
TC安卓脚本开发是一种在安卓手机上实现自动化任务、数据抓取、数据处理等功能的技术。它的原理是通过Android shell执行JavaScript脚本来实现对手机界面进行自动操作、获取数据的目的。在TC安卓脚本中,通过JavaScript脚本语言来调用An
2023-05-23
python安卓开发工具
Python是一种高级编程语言,它越来越受欢迎,因为它简单易学、通用而且适用于很多不同的领域。Python可以用来开发应用程序、网络和Web开发程序、科学计算程序、机器学习等等。而现在,Python在移动应用程序开发领域越来越受欢迎,特别是在安卓开发中。P
2023-05-23
mtk安卓开发板
MTK安卓开发板,是一种基于MTK芯片设计的开发板,具有高性能、低功耗、低成本等特点。MTK芯片是指台湾联发科技公司(MediaTek)出品的处理器芯片,与英特尔、高通等品牌相比,MTK芯片的主打是性价比,市场反响也相当不错。MTK安卓开发板的设计目的是为
2023-05-23
适用于安卓手机的蓝牙开发app
在本篇文章中,我将详细介绍如何开发一个适用于安卓手机的蓝牙开发APP。首先我们需要了解蓝牙技术的基本原理,然后会详细说明用于安卓开发的工具及方法,最后,我们将通过一个简单的例子来演示实际开发过程。一、蓝牙技术原理蓝牙技术是一种短距离无线通讯技术,可以实现移
2023-04-28
安卓开发app参考文献
对于想要学习安卓开发的人来说,有许多优秀的参考文献和教程可以帮助你入门和提高。以下是一些值得推荐的书籍与资源:1. 书籍(部分已有中文版,也可选择英文版原著阅读): - 《Android开发艺术探索》:作者:任玉刚。本书从Android的系统架构、Ac
2023-04-28
安卓商城app开发难点
在开发安卓商城类应用时,我们会遇到许多挑战和难点。以下是一些关键领域的详细介绍和原理解释:1. 用户界面设计 (UI Design):安卓商城类应用涉及大量的商品展示和交互,设计一个吸引人且易于使用的用户界面至关重要。这需要遵循 Material Desi
2023-04-28
固件开发跟安卓app开发
固件是指嵌入式电子设备中的程序代码,它是硬件与软件之间的接口,通过控制硬件实现各种功能。固件开发是针对嵌入式系统的开发,主要关注裸机编程和硬件控制,以及操作系统底层的相关知识。固件开发需要具备硬件与软件方面的知识,比如熟悉处理器架构,掌握汇编语言和C语言,
2023-04-28
制作app软件工具安卓版
在互联网和移动应用领域,拥有一款自己的安卓应用是非常有意义的。制作一款安卓应用并不一定需要精通编程技术,有许多媒介和开发工具可以在简易的操作中实现这个目标。本文针对不同技能水平的读者,从基础知识普及到详细教程,将为您提供制作安卓应用所需的一切。一、了解安卓
2023-04-28
vs开发安卓app
### 在Visual Studio中开发Android App:原理与详细介绍随着移动设备的普及,Android应用程序开发已经成为了各个行业都需要掌握的技能。通常情况下我们会选用Android Studio作为我们的开发环境,但是你知道Visual S
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1