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


相关知识:
安卓 图片拼接开发版软件
图片拼接是一项相对比较常见的功能,通过将多张图片合并成一张更大的图片,可以达到美化相册、实现拼图游戏、展示全景图等目的。本文将介绍在安卓平台中开发一个图片拼接功能的原理和实现方式。一、原理图片拼接的原理可以概括为将多张图片按照一定的排列方式,合成一张更大的
2023-05-23
uniapp安卓应用开发
UniApp是一种跨平台的开发框架,它支持同时多端开发:微信小程序、iOS、Android、H5、快应用、以及各个小程序平台,可以大大提高开发效率,使开发人员只需写一次代码,即可在多个平台上运行。在本文中,将详细介绍UniApp在Android应用开发中的
2023-05-23
qt5
Qt是一个流行的跨平台开发框架,允许开发人员使用相同的代码库来构建跨多个操作系统的图形界面、应用程序和各种嵌入式设备的工具。对于移动应用而言,Qt也提供了完整的解决方案,这样开发人员就能够利用他们掌握的技能和体验,一次性构建应用并在多个平台上运行。本文将介
2023-05-23
mac 安卓 开发
Mac和安卓是两个流行的操作系统,在开发方面都有着广泛的应用。本篇文章将从原理和详细介绍两个层面,来介绍Mac和安卓开发的相关内容。一、原理1. Mac OS X的开发Mac OS X的开发主要采用Objective-C和Swift语言进行,而且Apple
2023-05-23
cpucpu最低配做安卓开发
对于想学习安卓开发的初学者来说,CPU基本上是一台设备的核心,它的性能越强,运行速度就越快。但是,对于一些比较基础的安卓开发来说,使用最低配的CPU也是可以完成的。下面是介绍如何使用最低配的CPU做安卓开发。首先,从硬件方面来说,最低配的CPU可以使用笔记
2023-05-23
简单安卓app开发程序有哪些
开发安卓App的程序有很多,其中较为流行的几种方式如下:1. Java语言与Android Studio集成开发环境:这是目前最主流的安卓开发方式。开发者使用Java语言编写代码,将代码通过Android Studio编译打包成apk文件发布。Androi
2023-04-28
怎么开发安卓app程序
开发安卓应用程序需要对编程语言、开发工具和安卓操作系统的原理有一定了解。本文将为你提供关于怎么开发安卓app程序的原理和详细介绍。一、原理安卓应用程序主要是基于Java语言开发,也可以使用Kotlin等语言。在安卓操作系统中,应用程序通过一个名为Andro
2023-04-28
安卓软件app制作
安卓软件App制作可以狭义上指的是使用Android SDK开发App,也可以广义上指的是使用第三方工具开发App。1. 使用Android SDK开发AppAndroid SDK是一个免费提供的开发工具包,包含了开发Android应用程序所需的所有组件。
2023-04-28
安卓手机桌面上的app如何打包
在安卓手机桌面中,应用程序(APP)是以APK (Android Package Kit)的形式进行打包的。APK文件实际上是一个压缩包,它包含了应用的源代码、资源文件、清单文件等。应用程序的开发者需要遵循安卓应用开发的规范,使用Java或Kotlin等语
2023-04-28
安卓app开发用什么编程语言
安卓应用程序开发能使用多种编程语言,但最常用的还是Java语言。Java语言是一种面向对象的编程语言,可以运行于各种操作系统之上。Android平台采用了Java语言,因此许多Android开发者也选择了Java语言。Java语言非常灵活,可以开发各种应用
2023-04-28
安卓app开发制作多长时间
安卓APP开发的制作时间不同,取决于APP的类型、复杂性、功能、设计、开发工具和开发人员的技能等诸多因素。但基本的开发流程一般包括需求分析、设计、开发、测试和发布等几个阶段,总的开发时间需要几个星期到几个月不等。具体的,下面是一些参考时间:1.简单的APP
2023-04-28
安卓app 封装开发
安卓APP封装开发是一种应用开发方法,它利用现有的网页内容和技术,将其封装成一个可以在安卓设备上运行的原生应用。这种开发方法适用于对性能要求较低、更倾向于跨平台兼容性以及快速开发部署的项目。接下来,我们将详细介绍安卓APP封装开发的原理和操作流程。1. 原
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1