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


相关知识:
xe8开发安卓
XE8是一种由Embarcadero Technologies发布的集成开发环境,可用于开发移动应用程序、桌面应用程序和Web应用程序。在XE8中,开发人员可以使用Delphi/Object Pascal语言来构建跨平台应用程序。通过XE8,开发人员可以轻
2023-05-23
vivo开发者模式安卓手机
vivo开发者模式是vivo手机中的一项高级功能,它是一种让用户可以自由定制和优化手机性能的模式。开发者模式提供了许多高级选项,如调试模式、USB调试、ADB调试等等,这些选项都有助于用户深入了解手机系统的运行原理,进而优化使用体验。下面就来介绍一下viv
2023-05-23
kotlin安卓开发全部课程
Kotlin是一个开源的、跨平台的编程语言,被广泛用于安卓开发。与Java相比,Kotlin具有更加简洁明了的语法,更好的代码安全性,更强的兼容性和更高的效率。本文将为您介绍Kotlin安卓开发的全部课程,帮助您掌握Kotlin开发。Kotlin基础Kot
2023-05-23
app安卓客户端开发教程
Android作为全球最大的移动操作系统,在手机、平板、电视、穿戴设备等多个领域都有广泛的应用和用户,因此对于开发Android客户端的需求也日益增长。本文将介绍Android客户端的开发原理和详细步骤。一、Android客户端开发原理Android客户端
2023-05-23
用python开发安卓app
标题:用Python开发安卓App:原理和详细介绍随着智能手机的不断发展,安卓App市场的需求也越来越大。Python作为一门易学、易用的编程语言,被越来越多的开发者用于开发安卓App。本文将向您介绍如何使用Python开发安卓应用程序的原理和详细步骤。一
2023-04-28
开发安卓app工具
开发安卓APP的工具主要有两种:Android Studio和其他开发工具(如Eclipse、NetBeans等)。以下是对这两种工具的详细介绍和原理说明:1. Android StudioAndroid Studio是Google官方开发的安卓应用程序开
2023-04-28
开发安卓app 的目的与意义是什么
开发安卓app是为了让人们能够在智能手机、平板电脑和其他移动设备上使用特定的应用程序。这些应用程序可用于各种用途,如信息、社交媒体、游戏、在线购物、新闻、娱乐等等。在开发安卓app的过程中,我们可以使用 Java、Kotlin 等编程语言,并利用安卓软件开
2023-04-28
安卓系统app开发python
要使用Python进行Android应用程序开发,需要使用基于Python的Android应用程序开发框架,比如Kivy或者Pyqt等。在这些框架中,开发者用Python编写应用程序代码,然后编译成原生Android格式。 在以下几个方面介绍Python在
2023-04-28
安卓直播app开发
安卓直播 APP 开发涉及多方面知识,包括安卓开发、网络传输、视频编解码等。下面将从开发原理和基本流程两个方面进行介绍。一、开发原理安卓直播 APP 的整体架构主要包括三部分:1.视频采集模块:负责从摄像头预览并获取视频数据。2.视频编码模块:负责将视频数
2023-04-28
安卓无需打包统计app数据
在安卓应用程序开发中,通常会使用第三方统计工具来跟踪应用程序的使用情况和分析应用程序的性能表现。这些统计工具通常要求应用程序开发者在应用程序中集成其SDK,并通过打包将其插入到应用程序中。但是,通过一些技巧可以使得统计工具在不需要打包的情况下实现应用程序性
2023-04-28
安卓手机开发 app开发
安卓手机开发入门教程Android 操作系统是谷歌开发的一套基于 Linux 内核的开源操作系统,主要应用于智能手机和平板电脑等移动设备。开发者可以通过 Android 应用开发环境(SDK)为 Android 设备创建应用程序。这篇文章将详细解释由零开始
2023-04-28
安卓app查询开发者
安卓app查询开发者是关于向用户展示安卓应用的开发者信息的过程。这对于了解应用背后的团队和获取适当的技术支持非常有帮助。为了查询安卓应用的开发者信息,你可以通过多种途径来实现,包括使用Google Play商店、查看应用的官方网站以及使用第三方查询工具。在
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1