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


相关知识:
安卓 web开发
随着移动互联网的发展,越来越多的网站开始逐步适配手机端,同时,原生应用和不需要下载安装就能使用的web应用在移动互联网市场也愈发重要。其中,在安卓设备中,web开发技术也越来越成熟,为开发者提供了更广阔的应用选择和开发想象空间。本文将详细介绍安卓端的web
2023-05-23
java开发安卓应用
Java是一种高级编程语言,它被广泛应用于开发各种软件程序,包括安卓应用。本文将介绍Java开发安卓应用的原理和详细步骤。一、Java开发安卓应用的原理Java作为一种高级编程语言在安卓应用开发中发挥着重要作用。在使用Java语言开发安卓应用之前,需要了解
2023-05-23
delphi 10 安卓开发环境
Delphi 10是一个跨平台集成开发环境(IDE),它允许开发人员使用同一代码库创建多个操作系统上的应用程序,包括Windows、macOS、iOS和Android。Delphi 10支持多种编程语言,包括Delphi、C++、Object Pascal
2023-05-23
鸿蒙系统开发app和安卓开发app区别
一、鸿蒙操作系统(HarmonyOS)和安卓操作系统(Android)的介绍:1. 鸿蒙操作系统:由中国华为公司研发的一种开源、微内核的实时操作系统。它跨终端、跨平台,具有实时响应、低延迟等特点,致力于提供一个基于统一编程框架的开发模式,适应各种类型的设备
2023-04-28
深圳安卓app开发公司
在这篇文章中,我们将探讨深圳的安卓app开发公司,以及它们的工作原理和为什么这些公司在国内外客户寻求移动应用解决方案时备受推崇。我们会从以下几个方面进行详细介绍:1. 安卓app开发的重要性2. 深圳安卓app开发公司的主要特点3. 开发过程及工具4. 如
2023-04-28
开发安卓appide
开发安卓APP需要使用集成开发环境(IDE),常见的有Android Studio、Eclipse和IntelliJ IDEA等。其中,Android Studio是官方推荐的IDE,也是最常使用的。下面是开发安卓APP的大致步骤:1. 安装Android
2023-04-28
安卓系统app开发可视化编程工具
目前常见的安卓系统app开发可视化编程工具主要有两种,一种是基于Scratch的可视化编程工具,另一种是基于图形拖拽的Blockly编程工具。1. Scratch可视化编程工具Scratch是一款由麻省理工学院开发的可视化编程语言,用于教育相关领域的计算思
2023-04-28
安卓studio制作一个app
安卓Studio是一款开发安卓应用程序的集成开发环境。以下是制作一个安卓app的基本步骤:1. 安装 Android Studio:安装最新版本的 Android Studio。下载地址:https://developer.android.com/stud
2023-04-28
安卓app怎么连接数据库开发环境
在本教程中,我们将了解如何为安卓APP设置并连接数据库开发环境。我们将采用SQLite数据库,因为它适用于小型应用程序开发,无需安装,且易于集成。以下是详细的步骤及原理概述:1. 安卓平台与SQLite数据库: 安卓平台内置了SQLite数据库,可以很
2023-04-28
安卓app开发者盈利
安卓应用程序的盈利模式有很多种,以下是其中一些常见的盈利方式:1. 广告收入:开发者可以在应用程序中嵌入广告,通过用户点击广告链接获得收益。常用的广告形式包括横幅广告、插屏广告和视频广告等。2. 应用内购买:开发者可以在应用内销售虚拟商品或服务,例如游戏装
2023-04-28
安卓app与ios一起开发吗
安卓App与iOS一起开发是指同时在安卓和iOS平台上开发应用程序。这种开发模式的基本思想是一次编写代码,多平台运行(Write Once, Run Anywhere),通过这种方式可以大大提高开发效率,减少重复劳动。接下来,我将详细介绍几种不同的同时开发
2023-04-28
如何在安卓系统上开发旅游app
在安卓系统上开发旅游App涉及很多环节,本文将为你详细介绍如何从头开始进行开发。我们会分为以下几个步骤:1. 收集功能需求和分析:在开发旅游App之前,首先了解和分析市场上现有的旅游App,收集它们的主要功能和特点。梳理这些信息以便为你的App创设一个独特
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1