安卓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开发者模式怎么关
Android 10开发者模式在手机用户的日常使用中是一个非常重要的功能选择。它可以让用户拥有更多的权限来掌控手机的运行状态,由于很多人并不熟悉开发者模式,因此在使用时常常会遇到各种问题。开发者模式中的选择都是非常高级的,所以如果一旦出现不合适的设置,那么
2023-05-23
安卓 3d 开发
安卓3D开发是指在安卓应用中使用三维图形技术来呈现界面和动画效果的一种开发方式。它可以为用户带来更加真实、生动和立体的交互体验,使应用更具吸引力和趣味性。本文将介绍安卓3D开发的原理和技术要点。1. OpenGL ESOpenGL ES是一种跨平台的3D图
2023-05-23
python可以安卓开发吗
Python是一种高级编程语言,它简单易学,语法简洁,轻便易用,功能强大。由于其强大的功能,越来越多的开发人员选择python来开发应用程序。Python可以不仅可以用于桌面应用程序开发和Web开发,同时还可以用来开发移动应用程序。而在移动开发领域,除了i
2023-05-23
python语言能开发安卓app吗
Python是一门优秀的编程语言,有着极高的易学性和便捷性。尽管它被广泛应用于各种语言类型和系统,但是Python被认为是为应用程序开发和构建脚本的最佳技术之一。人们经常问,Python语言能否用来开发安卓应用程序。答案是肯定的,但是实现的过程是复杂的。P
2023-05-23
macbook air 安卓开发
Macbook Air 是苹果公司的产品,初始内部预装了 MacOS 操作系统,但是用户也可以在其上安装其他操作系统(如 Windows 或 Linux)。在 Macbook Air 上进行 Android 开发一般需要以下几个步骤:1. 安装 Java
2023-05-23
java怎么开发安卓
安卓开发基于Java语言和Android SDK(Software Development Kit)平台。使用Java开发安卓应用程序需要掌握Java编程语言的基础知识、安卓系统的开发概念和相关的开发工具,同时,需要知道如何使用Java和集成开发环境(ID
2023-05-23
java基础和安卓开发
Java基础Java是一门面向对象的编程语言,拥有简单、高效、安全和跨平台等特点,被广泛应用于各种领域。Java主要由JVM、JRE和JDK三部分组成。JVM是Java虚拟机,它提供了Java代码运行时的环境,并将Java代码转换成字节码,然后在计算机上运
2023-05-23
ios开发和安卓开发java
iOS开发和安卓开发都是目前移动应用开发领域中非常重要的技术分支,由于两个系统的开发语言不同,所以也需要不同的技术和开发工具。在本文中,我将介绍iOS和安卓开发中主要使用的开发语言Java的原理和详细介绍。一、Java语言的原理Java是一种面向对象的编程
2023-05-23
firefox安卓开发
Firefox安卓开发是指在Android平台上使用Firefox浏览器作为开发工具进行开发。Firefox浏览器是一款开源的浏览器,它集成了丰富的开发工具,支持各种Web技术和标准,是一个非常适合开发移动应用的工具。Firefox浏览器作为开发工具的优点
2023-05-23
我想开发安卓的app
开发安卓应用程序(App)教程安卓(Android)是谷歌(Google)开发的开源操作系统,广泛应用于便携式设备,如智能手机、平板电脑等。如今,越来越多的人们怀揣着创意、实现解决方案的愿景,致力于开发安卓应用。本教程旨在为初学者提供如何开发安卓应用程序的
2023-04-28
开发app为什么要安卓和苹果
为了让尽可能多的用户能够方便地使用,并提高应用的市场份额,开发者需要为不同的移动操作系统(如Android和iOS)开发应用(App)。Android和iOS是当前市场上两大主流的移动操作系统,它们由于不同的商业策略、技术架构和设计理念,使得在为这两个平台
2023-04-28
安卓外卖app开发实例
安卓外卖App可以实现在线提供外卖订购服务。一般包括用户注册、登录、个人中心、商品浏览、购物车、下单支付、订单管理、评价等功能模块。具体实现步骤如下:1. 客户端UI设计:根据业务功能需求,设计外卖App的用户界面,包括主页、分类页、详情页、购物车页、订单
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1