安卓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系统上如何退出开发者选项。一、什么是开发者选项开发者选项是为应用程序开发者提供的一组高级设置,用于
2023-05-23
vuejs安卓开发
Vue.js 是一个轻量级的渐进式框架,可以用于构建用户界面。其优势在于易于使用、性能良好、可复用的组件和灵活性。在安卓开发中,Vue.js 的应用主要包括使用 Vue.js 构建原生应用、使用 Vue.js 和 Cordova 构建混合应用和使用 Vue
2023-05-23
uniapp可以在安卓开发环境上运行吗
Uniapp是一款非常流行的小程序开发框架,它可以同时支持安卓开发和iOS开发。对于安卓开发人员,运行Uniapp非常简单,只需要了解一些基础知识和原理即可。让我们来详细介绍一下Uniapp在安卓开发环境下的运行原理。Uniapp能够在安卓环境上运行的原理
2023-05-23
s8开发者选项安卓8
开发者选项是安卓系统提供的一个特殊的设置选项,它允许开发者在系统中进行更深入的调试和开发工作。如果您是一名安卓开发人员,那么了解如何使用这个选项将有助于您更快地开发应用程序。在本文中,我们将详细介绍安卓8.0中的开发者选项。开启开发者选项在安卓8.0中,开
2023-05-23
php开发安卓服务器之
Android客户端和PHP服务器通常是两个不同的系统,他们之间的通讯必须要进行数据格式转换,而且在Android客户端向服务器发送请求或者服务器向Android客户端返回数据时,必然要涉及到网络通讯,在Android客户端和PHP服务器之间进行通讯的协议
2023-05-23
app开发安卓开发ios
移动应用程序开发(也被称为移动应用程序开发或简称为移动应用程序或APP开发)是一种用于创建应用程序的软件开发流程,并针对移动设备和平台进行优化。安卓开发Android是一种基于Linux内核的开源操作系统,为移动设备和平板电脑设计。安卓开发主要使用Java
2023-05-23
安卓udp app制作
UDP是一种无连接的协议,它比TCP更加轻量级、快速且能够支持广播和多播网络。在Android系统中,可以通过Java中提供的DatagramSocket和DatagramPacket类来实现UDP应用程序的开发。DatagramSocket类是实现UDP
2023-04-28
安卓app用什么工具开发的
安卓应用开发有多种方式,最常见的是使用Java语言和Android SDK(Software Development Kit)开发。具体来说,使用Android Studio这个IDE工具,在Java编程语言上编写代码,使用Android SDK中提供的A
2023-04-28
安卓app开发技术路线图
安卓 App 开发技术路线图主要包括以下几个方面:1. Java 基础:Android 应用程序主要使用 Java 语言进行开发。因此,熟悉 Java 基础语法、面向对象编程思想和 Java 标准库是非常重要的。建议初学者学习完 Java 基础后再进入安卓
2023-04-28
哈尔滨开发安卓app
哈尔滨,作为中国东北的重要城市,具有一定的软件开发能力。安卓app(应用)开发是当下比较热门的技术方向之一。本文将为您详细介绍安卓app的开发原理及过程。一、安卓系统简介安卓(Android)是一种基于Linux平台的开源移动操作系统,由谷歌(Google
2023-04-28
一个简单的安卓app需要开发多久
当我们谈论开发一个简单的安卓app所需的时间时,需要考虑到许多因素,如项目的需求、功能、目标用户群体以及开发者的经验。在这篇文章中,我们将讨论创建一个简单安卓app所需的时间和所需的知识。1. 概念和需求定义阶段在开始开发之前,你需要确定你的应用程序的核心
2023-04-28
cordova开发安卓app
Cordova是一个跨平台的开源框架,它可以帮助开发者使用 HTML、CSS 和 JavaScript 等网页技术创建移动应用,支持 Android、iOS、Windows Phone 等多种平台。Cordova 采用的是“混合开发”的方式,其原理是在应用
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1