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


相关知识:
安卓8开发人员选项
Android 8.0是一款操作系统,其开发人员选项旨在为开发人员提供更多的调试和测试工具。本文将详细介绍开发人员选项的原理和功能,以帮助您深入了解Android开发。开发人员选项的原理Android开发人员选项可以在设备设置中启用,并且它提供了一系列高级
2023-05-23
安卓12开发板
安卓12是一款基于Android 12操作系统的开发板,在硬件上支持多种接口和功能,非常适合开发者进行自己的项目研究和开发。下面我将为大家介绍一下该开发板的原理和详细介绍。1. 硬件安卓12开发板的主板采用了ARM Cortex-A55架构的处理器,其工作
2023-05-23
安卓 鸿蒙 ios 开发语言
随着移动互联网的快速发展,开发移动应用程序已经成为一项非常重要的工作。开发应用程序需要使用一种或多种编程语言。在移动应用程序领域,安卓、鸿蒙和iOS是最流行的操作系统,它们支持不同的编程语言。下面将对这三个操作系统和它们支持的开发语言进行详细介绍。1. 安
2023-05-23
oppo手机升级安卓11要加入软件开发者
oppo手机升级安卓11需要加入软件开发者的原因在于其更新包的签名机制。在安卓系统中,每个更新包都需要进行签名,以确保软件的完整性和安全性。此外,安卓系统的每个版本都有特定的签名机制,以防止升级包被恶意篡改。因此,对于普通用户而言,他们只能下载官方发布的升
2023-05-23
贵州安卓app开发价格
贵州安卓app开发的价格,一般是根据项目的难易程度、功能设计、界面设计、开发周期以及开发者的经验等多个因素来决定的。以下是一些参考价格:1. 基础级别:5000元左右。开发者可以采用现有的模板或简单的功能,如企业简介、产品介绍、客户联系等。2. 一般级别:
2023-04-28
没有开发者账户怎么下架安卓app
在没有开发者账户的情况下,要下架一个安卓应用(或者说从应用市场上移除一个应用)并不能直接操作,但你可以尝试以下方法以达到类似的效果:1. 联系应用商店:如果你发现一个应用在应用商店中被恶意上传或在没有你的授权的情况下被发布,你需要联系相应的应用商店的客服。
2023-04-28
安卓商城app开发工具和语言
安卓商城app的开发需要使用Java语言和Android Studio开发工具。首先,需要了解Java语言的特点:Java是一种跨平台的编程语言,可以编写一次代码,然后在不同的平台上运行不同的应用程序。Java语言还具有面向对象、简单易学、安全性高、动态性
2023-04-28
安卓可登录式备忘录app开发
安卓的可登录式备忘录App首先需要实现注册、登录、添加备忘录等基本功能。以下是简要介绍:1. 注册功能:用户输入用户名和密码,将其保存到一个数据库中。在保存之前,需要检查用户名是否已被注册,密码强度是否满足要求等。关于数据库的选择,可以使用SQLite来存
2023-04-28
安卓app开发技术特点
安卓app开发涉及许多技术和组件,从操作系统、开发环境到应用程序的构建和发布等。以下是关于安卓app开发的技术特点,原理以及详细介绍:1. 开放源代码:安卓是基于Linux内核的开源操作系统,允许开发者自由获取源代码进行深度定制和开发。Google Pla
2023-04-28
安卓 app 怎么制作
安卓 app 的制作可以分为以下几个步骤:1. 设置环境在开始制作 app 之前,需要确保你的电脑上安装了 Android Studio。如果没有,你需要去官网下载并安装。2. 创建新项目打开安卓开发工具 Android Studio 后,点击“Start
2023-04-28
app制作安卓版
制作安卓应用程序可以概括为以下四个主要步骤:1. 选择开发工具:首先,您需要选择一款适合您的开发需要的开发工具。Android Studio是最常用的安卓开发工具之一。它提供了众多的开发工具和模板,以帮助您快速开发强大的应用程序。使用Android Stu
2023-04-28
7天玩转安卓app开发
在此篇文章中,我们将为大家带来一份7天玩转安卓app开发的详细教程,对于入门者来说,这是一个很好的学习材料。无论您是软件开发初学者还是有些经验的开发者,这个7天的教程或许能帮助您快速了解和掌握安卓app开发的基本原理和方法。第一天:了解安卓和安卓开发工具1
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1