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


相关知识:
安卓6
在安卓系统中,开发者模式允许用户使用高级开发选项和功能。如果你需要进行一些调试或开发工作,开启开发者模式可以帮助你更好地完成这些任务。在这篇文章中,我将介绍如何在安卓6.0中开启开发者模式。第一步:寻找“关于手机”在你的安卓设备上,打开“设置”应用程序,滚
2023-05-23
qt做安卓开发
Qt是一种跨平台的应用程序开发框架,它可以让开发人员使用一种语言编写应用程序并将其部署到多个平台上,包括Windows,Linux和Android。在最近的版本中,Qt已经支持了安卓平台,让开发人员可以在使用Qt框架的同时开发安卓应用程序。安卓开发需要安装
2023-05-23
evb开源全志a20安卓开发板
随着智能化浪潮的兴起,各种智能硬件产品已经逐渐普及。其中,开发板也逐渐成为了广大开发者的必备工具。EVB是一种非常知名的开源开发板,其中最为著名的就是基于全志A20的开发板。下面将为大家详细介绍一下这款开发板。全志A20作为一款双核ARM Cortex-A
2023-05-23
c语言安卓程序开发
C语言是一种广泛应用于电脑和嵌入式系统的编程语言,在Android应用程序开发中也有着特殊的作用。本文将从原理和详细介绍两个方面,分别阐述C语言在Android应用程序开发中的应用。原理Android系统的内核是基于Linux的,因此,与Linux一样,C
2023-05-23
打包安卓app出现这个报错
当我们打包一个安卓APP时,可能会遇到报错。为了帮助您解决问题,我们将详细介绍可能导致打包失败的原因。这篇文章将提供一些可能的解决方案,帮助您顺利打包安卓APP。在开始之前,我们首先需要了解以下背景知识:1. 安卓APP打包指的是将APP的代码、资源、证书
2023-04-28
手机安卓app开发
安卓(Android)是移动设备上最广泛使用的操作系统之一,因此,开发安卓应用程序也是越来越受欢迎的技能之一。安卓应用程序的开发主要涉及Java编程语言和Android SDK(软件开发工具包)。下面将介绍安卓应用程序的开发流程和关键步骤:1. 安装And
2023-04-28
巧多左右脑开发app手机安卓版
巧多左右脑开发app是一款专为儿童开发的应用程序,旨在通过各种有趣的方式,激发和训练孩子的左右脑发展,帮助他们的智力水平得到全面的提升。其主要原理是运用了一系列的科学脑力开发技巧,如视觉刺激、音乐疗法、游戏式学习、艺术创造等,以及一定的动手实践操作,让孩子
2023-04-28
安卓开发设计一个app页面
在安卓开发中,一个app页面通常由几个基本组件组成,包括但不限于以下几种:1. Activity:是Android应用程序界面的基本单元,Android应用程序中的每一个屏幕、每一个窗口都是由一个Activity承载的。2. Fragment:可以将一个A
2023-04-28
安卓app应用软件开发公司
安卓应用开发公司是指为客户与企业创建、设计、开发和优化Android平台上的移动应用程序的组织。这些公司提供专门的Android开发服务和技术支持,以满足客户日益增长的移动应用需求。下面,我们将详细介绍安卓应用开发公司的主要工作内容和开发过程。1. 寻找灵
2023-04-28
安卓app应用开发公司企业模板
安卓应用开发企业模板一般是指用于企业建立、宣传和扩展业务的应用程序的基本设计和功能。安卓是谷歌的开源移动操作系统,占有着世界主要的市场份额,因此,为企业创建安卓应用变得尤为重要。以下是针对安卓应用开发企业模板的一份原理及详细介绍。一、企业安卓应用开发模板包
2023-04-28
如何用python制作安卓app
要用Python来制作Android应用程序,我们需要使用Java编写的Android软件开发工具包(SDK)以及Python编写的工具或库来与SDK进行交互。一种常用的方法是通过Python和Kivy框架来开发安卓应用程序。Kivy是一个跨平台的Pyth
2023-04-28
专门开发安卓app的语言
安卓APP的开发语言主要包括Java、Kotlin和C++。1. Java:Java是编写安卓应用程序的主要语言。大多数安卓开发人员选择Java作为主要语言,因为它既简单又易于学习。Java有一个庞大的社区和一个充满活力的生态系统,可以通过Java编写高质
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1