安卓9开发者选项夜间模式为什么时有时无

在Android 9之后,开发者选项加入了一个夜间模式选项。当开启夜间模式后,手机的背景色会发生变化,变为黑色或者其他暗色系,以保护用户的眼睛。但是有时候,即使开启了夜间模式,某些应用还是会以白色为主题色。这是为什么呢?

原理:

Android 系统中引入了一个标准的夜间模式,这个模式并不依赖于应用程序,而是在底层通过使用背景为黑色的视图渲染整个系统的UI。应用程序则需要提供两套主题:明亮主题和深色主题。当夜间模式开启时,Android 会将系统主题从明亮主题切换到深色主题。

当应用程序使用了Android系统提供的主题时,夜间模式能自动适应该应用程序的深色主题。但是,当应用程序使用自己的主题时,就要靠开发者自己去适配夜间模式了。

详细介绍:

1. 深色主题的支持

为了支持夜间模式,应用程序需要提供两套主题:明亮主题和深色主题。在Android 9之前,主题设置是在应用程序的res/color.xml文件中设置的。我们可以通过定义颜色的方式来设置主题色,如白色或黑色等。而随着夜间模式的引入,我们需要在res/values目录下新建一个文件夹res/values-night,并在该目录下再次新建一个color.xml文件,来设定夜间模式下应用的主题色。在Android系统中,所有为资源文件设置后缀名为“-night”的文件,都会被视为夜间模式下对应的资源文件。Android会根据当前的界面风格,来使用对应的资源文件。

2. 引用系统主题

为了让应用程序在夜间模式下自适应深色主题,我们可以使用Android提供的Material Design主题。这些主题可以通过在styles.xml中使用parent属性来引用。Material Design提供了灰色和黑色两种深色主题。我们可以通过引用这些主题,来为应用程序的UI自动适配夜间模式。

3. 动态适配

有些应用程序可能采用了动态主题样式,即允许用户通过各种方式来选择主题,如更改背景色、文字颜色和字体等。这时,我们需要在运行时动态地修改主题样式,来实现夜间模式的适配。我们可以使用如下伪代码来达到该目的:

```kotlin

if(isNightMode()) {

setTheme(R.style.AppTheme_Night)

}else{

setTheme(R.style.AppTheme_Light)

}

```

4. Android 10的新特性

在Android 10中,夜间模式得到了进一步完善。系统提供了三种模式:自动、开启、关闭。当选择自动模式时,系统会根据当前时间自动切换到夜间模式。而且,Android 10引入了一个新的属性,可以通过将其设置为“yes”来使应用程序支持夜间模式:android:navigationBarColor=”#000000”或者在Activity的主题中设置:android:windowDrawsSystemBarBackgrounds=”true” 和android:statusBarColor=”@color/colorPrimaryDark”。

总结:

为了适应夜间模式,应用程序需要提供深色主题,而在适配时,我们可以引用Android提供的Material Design主题,也可以动态适配主题。我们还可以借助Android 10的新特性,将应用程序适配更加完善。


相关知识:
安卓4
安卓4.4.4系统进入开发者模式的操作较为简单,只需要对系统设置进行一定的调整即可成功操作。下面将为大家详细介绍安卓4.4.4进入开发者模式的设置方法。首先,进入安卓系统的设置选项。一般情况下,这个设置选项可以在应用程序中找到。在打开设置后,向下滑动屏幕,
2023-05-23
vs 安卓开发教程
安卓开发是指使用Java语言或Kotlin语言等编程语言在安卓操作系统平台上开发应用程序的过程。安卓平台是目前全球用户量最大的操作系统平台之一,通过安卓开发,可以开发各种类型的应用程序,包括社交应用、游戏、生产工具、信息应用、娱乐应用等等。安卓开发的基本原
2023-05-23
qt开发安卓app后台运行
在开发 Qt 安卓应用时,有时候需要让应用在后台运行,以实现某些所需的功能,如音乐播放器、即时通讯等。本文将介绍如何在 Qt 安卓应用中实现后台运行功能。Android 系统的后台运行机制是通过 Service 实现的,而在 Qt 安卓应用中,我们可以通过
2023-05-23
python+安卓开发
Python是一种高级编程语言,因其简单易学、可读性高,而被广泛使用。同时,安卓是一个开放的移动设备操作系统,也很受欢迎。本文将介绍Python和安卓开发之间的联系以及如何使用Python进行安卓开发。一、Python和安卓开发之间的联系Python可作为
2023-05-23
kotlin开发安卓app笔记
Kotlin是一门基于JVM的静态类型编程语言,也是近年来在安卓开发领域快速崛起的语言之一。Kotlin的语法简洁、优雅,目标是成为Java的替代品,提供更多的语言特性和更优的编程体验。在本篇文章中,我们将学习使用Kotlin开发安卓应用程序的基础知识。1
2023-05-23
深圳专业安卓开发app公司
深圳作为中国的科技创新中心,拥有众多专业的安卓开发APP公司。这些公司致力于为客户提供高质量的移动应用和解决方案,满足各种应用场景和行业需求。在此,我们将简要介绍安卓开发APP公司的原理和一些具体细节。一、原理安卓开发APP公司主要通过以下几个方面来完成一
2023-04-28
开发安卓app开发用什么软件
安卓 App 开发需要使用 Android 开发工具包(Android Development Kit,简称 ADK)。ADK 是一套由谷歌公司提供的开发工具包,它包含了开发应用所需的所有组件,包括编译器、软件库、调试器和模拟器。具体来说,常用的开发软件包
2023-04-28
开发一个安卓手机app需多少钱
开发一个安卓手机 App 的费用取决于多种因素,包括应用程序的功能、设计和开发的时间、测试和部署等。以下是开发应用程序所需的主要步骤:1. 需求分析和规划:这个阶段是为了澄清项目的目标和确定功能和目的,以及确定项目的时间和费用。2. 界面设计:设计应用程序
2023-04-28
安卓手机购物返利类app开发
在安卓手机购物返利类app开发中,主要的原理是通过合作伙伴关系,提供给消费者优惠的购物渠道,同时在购物后返还一定比例的购物金额为返利。具体的开发流程如下:1. 合作伙伴关系:与各大电商网站(例如淘宝、天猫、京东等)进行合作,获取他们的商品信息并提供返利计划
2023-04-28
制作安卓app需要用到什么技术
制作安卓app通常需要用到以下技术:1. Java语言:Android应用程序开发主要使用Java语言进行开发。Java是一种面向对象的、跨平台的高级编程语言,它具有良好的可读性、可移植性和安全性。2. Android SDK:Android软件开发工具包
2023-04-28
kivy开发安卓手机app
Kivy是一个基于Python的跨平台GUI工具包,可以快速开发移动端和桌面端的应用程序。它提供了跨平台开发的支持,可以在Windows、Linux、MacOS、iOS、Android等多个平台上运行。下面是使用Kivy开发安卓手机App的步骤和流程:1.
2023-04-28
csdn安卓开发跑腿app
跑腿APP是一种可以通过手机APP在线下单配送,实现即时达的互联网服务。该应用的实现过程,需要考虑以下几个方向。1. 数据存储:跑腿APP需要存储大量的用户信息、订单信息、收入信息等等。一般情况下,我们可以使用本地数据库或者云平台上的数据库来进行存储。其中
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1