安卓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系统的一个重要功能,可以为开发人员和用户提供更多的控制选项和调试工具。不过,为了保护用户的隐私和安全,开发者模式默认是关闭的。本文将介绍Android 12的开发者模式如何打开。1. 版本要求开发者模式是一项高级功能,要求用户的设
2023-05-23
安卓11开发项目介绍
安卓11是谷歌最新发布的移动操作系统,带来了一系列新特性和强大的功能。在开发应用程序时,开发人员可以利用这些功能为用户提供更出色,更高效的体验。以下是一些安卓11开发项目的介绍。1. 反馈闪光灯在安卓11中,您可以使用新的API来使用闪光灯为用户提供即时反
2023-05-23
thingsboard安卓开发
Thingsboard是一种开源物联网平台,用于管理设备和数据。它提供了一种安全可靠的方式,使得设备可以与云上的系统通讯和交互。在Android开发中,你可以利用Thingsboard的API来自动化过程。你可以使用RESTful API来管理设备、仪表板
2023-05-23
mapbox安卓开发
Mapbox是一个开源的地图库,它可以在Web、移动设备和桌面端上快速创建和部署交互式地图。随着手机应用的普及,越来越多的移动应用需要使用地图功能,Mapbox可以为开发人员提供完善的地图服务和工具箱。在本篇文章中,我们将介绍如何在安卓应用中使用Mapbo
2023-05-23
ftp安卓开发
FTP(File Transfer Protocol)是一个标准的文件传输协议,它是互联网上使用最广泛的文件传输协议之一。FTP协议通常用于将文件从一个计算机传输到另一个计算机,使用FTP协议可以快速,安全地传输大文件。在安卓开发中,使用FTP协议可以实现
2023-05-23
cdr开发安卓版
CDR是一款用于记录电话和短信交流的软件,其全称为“Call Detail Record”,中文解释为“通话记录”。CDR在电信运营商和企业通信系统中广泛使用,以帮助他们了解各种通信的使用情况和优化网络。现在,越来越多的人使用智能手机,而CDR也逐渐发展出
2023-05-23
at安卓原生混合开发
AT安卓原生混合开发是一种在原生应用中嵌入Web页面的技术,通过在原生应用中使用WebView控件,将Web页面作为应用的一部分展示出来。这种技术在开发移动应用中非常常见,不仅能够为用户提供丰富的内容和交互功能,还能够减轻开发难度和资源消耗。AT安卓原生混
2023-05-23
arduino 安卓开发板
Arduino安卓开发板是一种基于Arduino平台的开发板,其具有针对Android设备的特殊功能和接口,可以用于更方便地开发Android应用程序。本文将对Arduino安卓开发板进行详细的介绍。1. Arduino安卓开发板的概述Arduino安卓开
2023-05-23
开发安卓app的步骤
开发安卓 App 的步骤主要包括以下几个方面:1. 确定 App 功能和设计在开始开发 App 之前,需要对 App 的功能和设计进行初步规划和设计,这是 App 开发的第一步。可以通过写需求文档、制定流程图等方式来规划 App 的开发。2. 学习安卓开发
2023-04-28
安卓app开发写xml吗
在安卓开发中,布局文件一般采用xml格式进行编写。下面将从原理以及详细介绍两个方面来介绍安卓app开发中xml的使用。原理:安卓应用程序的布局以及各种元素的样式等信息都是在xml文件中定义的。当安卓应用程序在运行时,系统会自动将xml文件解析,然后根据xm
2023-04-28
基于安卓系统的app开发论文
安卓系统是一个非常广泛应用于移动设备的操作系统,因此许多应用程序开发者选择使用安卓系统进行开发。本文将介绍基于安卓系统的app开发的原理和详细步骤。一、环境准备在进行安卓系统开发之前,需要对开发环境进行准备。首先需要下载安装Java开发工具包(JDK),然
2023-04-28
go语言可以开发安卓app吗
Go语言可以用于开发安卓应用程序,但需要使用一些额外的工具和库来完成。以下是具体的原理和详细介绍:1. Go Mobile: Go官方提供了一个名为Go Mobile的工具集,可以轻松地将Go代码编译为Android或iOS应用程序。它提供了一个名为gom
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1