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


相关知识:
安陆开发区卓湾社区电话号码
安陆开发区卓湾社区电话号码是指安陆开发区卓湾社区的联系电话,用于社区内居民和外界联系的重要媒介。以下是电话号码的详细介绍和工作原理。联系方式卓湾社区联系电话为0712-3137200,可通过此电话联系社区的各项事务。该电话为社区服务中心的综合服务电话,服务
2023-05-23
visual studio 开发安卓
Visual Studio 是一款由微软开发的集成式开发环境(IDE),它支持多种编程语言,包括 C++、C#、VB.NET 和 F# 等。可以使用 Visual Studio 搭配 Xamarin 插件来开发安卓应用程序。Xamarin 是一款由微软推出
2023-05-23
c sharp开发安卓app
C#是一种用于开发Microsoft Windows桌面应用程序、服务器应用程序和Web应用程序的面向对象编程语言。同时,C#也可以用于开发安卓应用程序。为了使用C#开发安卓应用程序,我们需要使用Xamarin,一种跨平台应用程序开发工具。Xamarin允
2023-05-23
安卓手机打包app软件哪个好
安卓手机打包APP软件有很多种,这里介绍几种常用的方法。1. Android StudioAndroid Studio是官方提供的集成开发环境,它内置了打包工具,可以直接使用它打包APK。步骤如下:1)在Android Studio中打开你的项目;2)选择
2023-04-28
安卓手机app开发平台
安卓手机App开发平台是指开发者使用安卓系统的软件开发工具集合,基于Java语言进行开发,用于创建安卓手机应用程序的软件平台。安卓手机App开发平台主要包括以下组件:1. Java开发工具:安卓手机App开发平台使用Java语言进行应用程序开发,因此需要J
2023-04-28
安卓开发更换app图标
安卓系统中的应用图标是每个应用程序显示在系统界面上的一个标识,具有独特的形状和颜色,能够让用户快速识别出应用程序。当然,在开发应用程序后,你可能需要更换应用图标,以匹配不同的设计需求或品牌标识,下面是更换应用程序图标的原理和详细介绍:一、应用程序图标介绍安
2023-04-28
安卓app软件聚合类制作
制作安卓app软件聚合类需要以下几个步骤:1. 需求分析:首先需要明确你的聚合类app需要提供哪些功能以及针对哪个领域的app进行聚合。2. 数据源采集:接下来需要收集和整合来自不同数据源的数据,例如各大应用商店和原始应用的API。可以使用爬虫技术来抓取数
2023-04-28
安卓app开发工程师面试
在本教程中,我们将讨论安卓app开发工程师面试的一些常见问题和答案。这些问题将涵盖一些基本的概念、技术和工具,以帮助你了解安卓app开发的原理和详细介绍。这些问题适用于那些对安卓开发感兴趣的初学者。1. 什么是Android?Android是一个基于Lin
2023-04-28
安卓app开发定制湖州
安卓APP开发定制是指根据客户需求,定制开发一款专属的安卓应用程序。在湖州等地,APP开发公司一般提供此项服务。下面简单介绍一下安卓APP开发定制的流程和注意事项。1. 需求分析:首先需要确定客户所需的功能,目标用户群体,界面设计等方面的要求。根据客户需求
2023-04-28
安卓app开发入门书籍
当您想学习安卓app开发时,有很多优质的书籍可以帮助您入门。这些书籍为您提供了理论知识、实际示例和详细的步骤,以帮助您了解安卓开发的各个方面。以下是一些在安卓开发界具有很高影响力的入门书籍:1. 《Android开发权威指南》(Android Progra
2023-04-28
安卓app制作需要什么技术
安卓App制作需要以下技术:1. Java编程语言:安卓应用程序是使用Java编程语言编写的。如果你想要成为一名安卓开发人员,必须学习Java编程语言。2. 安卓SDK:这是安卓应用程序的核心开发工具包。它包含了一系列的开发工具和APIs,帮助开发人员构建
2023-04-28
如何用java开发一个安卓app
在本文中,我们将详细介绍如何用Java语言开发一个安卓应用。安卓应用开发需要使用Android Studio这个官方推荐的集成开发环境(IDE)。我们会按照以下顺序进行:1. 安装Android Studio2. 创建一个新的项目3. 理解安卓应用的基本结
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1