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


相关知识:
安卓11开发者预览版要不要更新
近日,谷歌推出了安卓11的开发者预览版,那么作为一名安卓开发者,我应该要不要更新呢?首先我们需要了解一下安卓11的新特性和更新内容,再结合自己的实际需求做出相应的决定。安卓11主要特性:1.消息通知窗口调整:支持更多的聊天内容展示、支持快速回复和免打扰,让
2023-05-23
vs安卓开发jni
在Android开发中,Java语言是主要的编程语言,而JNI (Java Native Interface)是连接Java和Native代码(如C、C++等)的桥梁。因为Java虚拟机的存在,所以JNI可以允许Java代码直接调用本地的代码库并提供本地方
2023-05-23
qt15
Qt是一种广泛使用的跨平台应用程序开发框架,支持C++语言的开发人员。Qt能够用于开发各种应用程序,包括桌面应用程序、嵌入式嵌入式设备、手机应用程序、网络应用程序等。在本文中,我们将介绍如何使用Qt来开发Android应用程序。前置条件在开始使用Qt开发A
2023-05-23
java开发安卓应用教程
Java是一种非常常用的编程语言,在开发Android应用时同样得到了广泛的应用。如果你想成为一名Android应用开发者,学习Java语言就是基础中的基础。下面就为大家介绍一下Java开发Android应用的基本原理。Java开发Android应用的原理
2023-05-23
java和安卓开发的区别
Java是一种编程语言,广泛应用于各种领域中。而安卓开发则是一种基于Java语言的移动应用开发。Java和安卓开发有什么区别呢?在这里我们进行详细介绍。1. 应用定位Java适用于开发桌面应用、Web应用、服务器应用以及与其他语言交互的API。Java最著
2023-05-23
0基础学安卓开发书本
Android是目前最流行的移动操作系统之一,几乎每个人都至少使用过一款Android设备。对于那些想要深入学习Android开发的人来说,一本详细介绍Android开发原理的书本是非常重要的。本书将介绍Android开发的基本原理,旨在帮助读者了解And
2023-05-23
杭州安卓app开发收费多少
杭州的安卓APP开发收费因其实际需求和项目复杂度的不同而有很大差异,通常分为固定价格项目和计时项目两种方式。在讨论收费详情之前,让我们先了解一下安卓APP开发的一些基本原理和关键步骤。1. 需求分析:在开发过程开始之前,需要从客户那里收集详细的需求。这些需
2023-04-28
开发安卓appapp开发找创胜
在这篇文章中,我们将介绍Android应用开发的基本原理和详细介绍。作为一名拥有丰富互联网领域知识的博主,我将尽力让这个教程详细且易于理解,适合初学者入门。一、Android应用开发基本原理Android是一个基于Linux内核的开源操作系统,广泛应用于智
2023-04-28
安卓app的开发环境
安卓App开发环境分为两个部分:Android软件开发套件(SDK)和集成开发环境(IDE)。这里将对它们进行详细介绍。1. Android SDKAndroid SDK是安卓开发者用来开发、编译和测试应用程序的工具,包含了一系列的库和工具,可以让开发者构
2023-04-28
安卓app制作哪个公司好
当谈到寻找一家优秀的Android应用开发公司时,有几家知名的公司在行业中表现突出。以下是它们的简要介绍和它们的原则或详细信息:1. Fueled (https://fueled.com/)Fueled是一家知名的安卓app开发公司,拥有全球各地的客户。这
2023-04-28
佛山安卓商城app开发多少钱
安卓商城app开发的费用因项目的复杂程度、开发团队的经验和地区的价格差异而异。一般来说,商城app的开发费用会根据以下因素进行计算:1.功能需求:商城app作为一个电商平台,需要有商品展示、购物车管理、订单管理、支付结算、物流等多种核心功能,因此,商城ap
2023-04-28
app开发的安卓项目
安卓是目前全球市场份额最大的移动操作系统之一,因此安卓应用程序开发非常受关注。一个安卓应用程序通常由四部分组成:Activities、Services、Broadcast Receivers和Content Providers。下面我将详细介绍这四个组成部
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1