安卓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 开发的基础安卓的 W
2023-05-23
windows7可以开发安卓吗
Windows 7系统并不能直接开发安卓应用,因为Android Studio只支持Windows 10及以上操作系统,但是可以使用第三方软件/工具进行开发。下面介绍几种可行的方案。1. 使用虚拟机在Windows 7中,可以安装一款虚拟机软件(如VMwa
2023-05-23
web安卓开发
Web开发和Android开发是两个不同的领域,但他们可以结合起来进行Web安卓开发。Web安卓开发的原理是将Web技术和Android技术相结合。通过Web技术,可以使用HTML、CSS和JavaScript开发Web应用程序,实现数据交互和界面展示。而
2023-05-23
ubuntu开发安卓
Ubuntu作为一种流行的桌面操作系统,同样可以用于安卓开发环境的搭建。但要注意的是,安卓开发相对而言比较复杂,需要在安装和配置上多花一些心思。1. 安装Java安卓开发的基础语言是Java,因此安装Java是必要的,可以使用以下命令进行安装:```sud
2023-05-23
miui9开发版安卓
MIUI是小米公司基于Android操作系统深度定制的一款操作系统。MIUI9是其第九版的版本,是一款比较稳定、流畅、美观且功能强大的智能手机操作系统。本文将详细介绍MIUI9开发版的相关内容。一、 MIUI9开发版概述MIUI9开发版是由小米公司发布的一
2023-05-23
android安卓开发教程
安卓(Android)是一种基于Linux内核的开放源代码移动操作系统,由Google公司和开放手持设备联盟主导开发,适用于移动设备、平板电脑、智能电视等。Android SDK是一个完整的开发平台,主要包括操作系统、开发工具和相关文档。安卓应用程序可使用
2023-05-23
2019年转行安卓开发
在当今快速发展的互联网时代,移动互联网已经成为人们生活中的重要组成部分。安卓平台是目前市场占有率最高的移动操作系统,因此安卓开发也成为了一个非常热门的行业,吸引了越来越多的人转行进入这个领域。安卓开发基础安卓开发需要掌握Java语言基础,因为安卓应用程序是
2023-05-23
郑州安卓app开发要多少钱
郑州安卓app开发的价格因为开发者不同、功能模块和复杂程度不同,所以价格也有所差异。一般而言,普通的简单APP开发需求,价格在2万元到5万元之间。而高端复杂APP的开发费用则会更高。以下是APP开发费用的一些因素:1. 开发者的工作量APP开发的工作量通常
2023-04-28
安卓开发app界面
Android开发的APP界面可以使用XML文件来描述,其中包含了各种控件和布局,以及它们的属性和样式。在这里,我将详细介绍安卓APP界面的原理和开发流程。1. 使用XML文件布局界面在安卓开发中,使用XML文件描述界面布局是最常见的方法。XML文件通过标
2023-04-28
安卓开发app扫雷游戏有哪些
扫雷游戏是一款经典的计算机游戏,它的核心目标是在一个方格区域内,通过一系列点击操作,找出并标记所有的地雷,同时避免点击到地雷。安卓版的扫雷游戏需要一个额外的触控界面,并采用安卓系统的开发工具构建。在这篇教程中,我们将详细介绍如何创建一个简单的扫雷游戏应用。
2023-04-28
安卓app应用开发设计报告怎么做
一份完整的安卓App应用开发设计报告主要包括以下几个部分:1. 项目背景及简介在这一部分,要简述项目的基本背景、应用范围和预期目标。例如,你可以从以下几个角度进行介绍:- 项目起源:项目是如何产生的,背后是否有特定的需求或者趋势。- 项目目标:应用旨在解决
2023-04-28
但不是安卓开发的app
好的,我可以为您简单介绍一下非安卓开发的App。除了安卓平台之外,还有两种主要的移动应用开发平台:iOS和Hybrid。iOS应用开发平台是苹果公司独有的应用开发平台。它使用Objective-C或Swift编译器编写代码,并且使用Xcode开发环境进行程
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1