Dark theme 暗色主题

样式和主题

样式是一个属性集合,用于指定单个 View 的外观。 样式可以指定字体颜色、字号、背景颜色等属性。

主题背景是一种应用于整个应用、Activity 或视图层次结构的样式,而不仅仅应用于单个视图。

在项目的 res/values/styles.xml 文件,创建需要的样式

#00FF00

使用 parent 属性指定要扩展的样式

创建主题背景, 像创建样式一样

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

将深色”主题背景应用于整个应用:

对 AndroidManifest.xml 文件中的 标签或 标签应用具有 android:theme 属性的主题背景

样式层次结构

如果您在多个位置指定了相同的属性,下面的列表决定了最终将应用哪些属性。该列表从最高优先级到最低优先级排序:

通过文本 span 将字符或段落级样式应用到 TextView 派生类

以编程方式应用属性

将单独的属性直接应用到 View

将样式应用到 View

默认样式

将主题背景应用于 View、Activity 或您的整个应用

应用某些特定于 View 的样式,例如在 TextView 上设置 TextAppearance

深色主题背景

Android 10 (API 级别 29) 及更高版本中提供深色主题背景

更改应用内主题背景

当应用在搭载 Android 9 或更低版本的设备上运行时,推荐的主题背景选项是:

浅色

深色

由省电模式设置(推荐的默认选项)

在 Android 10 (API 级别 29) 及更高版本上运行时,推荐的选项有所不同,目的是允许用户替换系统默认设置:

浅色

深色

系统默认(推荐的默认选项)

请注意,如果用户选择“Light”,省电模式不会更改该设置。

每个选项直接映射到以下某个 AppCompat.DayNight 模式:

浅色 - MODE_NIGHT_NO

深色 - MODE_NIGHT_YES

由省电模式设置 - MODE_NIGHT_AUTO_BATTERY

系统默认 - MODE_NIGHT_FOLLOW_SYSTEM

如要切换主题背景,请调用 AppCompatDelegate.setDefaultNightMode()。

响应主题背景的更改

每个 Activity 都可以处理 uiMode 配置变更,以自行处理深色主题背景

android:name=".MyActivity"

android:configChanges="uiMode" />

系统会在出现主题背景变更时调用该 Activity 的 onConfigurationChanged() 方法

override fun onConfigurationChanged(newConfig: Configuration) {

super.onConfigurationChanged(newConfig);

val currentNightMode = configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK

when (currentNightMode) {

Configuration.UI_MODE_NIGHT_NO -> {} // Night mode is not active, we're using the light theme

Configuration.UI_MODE_NIGHT_YES -> {} // Night mode is active, we're using dark theme

}

}

Reference 参考

其他文章

android白色暗色主题,使用Kotlin开发Android应用(12) - Dark theme 暗色主题相关推荐

  1. 用Kotlin开发android平台语音识别语义理解应用

    用Kotlin开发android平台语音识别,语义理解应用(olamisdk) 转载请注明CSDN博文地址:http://blog.csdn.net/ls0609/article/details/75 ...

  2. 用Kotlin开发android平台语音识别,语义理解应用(olamisdk)

    本文使用Kotlin开发Android平台的一个语音识别方面的应用,用的是欧拉密开放平台olamisdk. 1.Kotlin简介 Kotlin是由JetBrains创建的基于JVM的编程语言,Inte ...

  3. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

  4. 使用Kotlin开发Android应用初体验

    使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之 ...

  5. kotlin开发Android入门篇八Kotlin开发Android的基本使用

    基础篇:Kotlin开发Android的基本使用 使用AndroidStudio3.0及以上开发Kotlin在新建项目中勾选这个选项则会默认开发语言为Koltin,然后再gradle(Project的 ...

  6. 用 Kotlin 开发 Android 项目是一种什么样的感受?(二)

    前言 前面我已经写了一篇名为<用 Kotlin 开发 Android 项目是一种什么样的感受?>的文章.文中多数提到的还是 Kotlin 语言本身的特点,而 Kotlin 对于 Andro ...

  7. 使用Kotlin开发Android应用

    作者:snowdream Email:yanghui1986527#gmail.com QQ 群: 529327615 原文地址:https://snowdream.github.io/blog/20 ...

  8. Kotlin开发Android

    Kotlin开发Android<第一行代码> Kotlin简单语法 变量 1. 关键字var和val 2.不必显式声明变量类型 3. 变量的类型 函数 函数的定义 语法糖 流程控制 条件控 ...

  9. [Android]使用Kotlin开发Android(二)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4829007.html [TOC] 使用Kotlin+OkHtt ...

最新文章

  1. 添加Soap头来增加Web Service的安全性
  2. 【转】读马化腾的产品设计观
  3. Linux中执行shell脚本的4种方法
  4. CISSP的成长之路(二):为什么要获得CISSP认证
  5. 对话高通孟樸:5G发展离不开中国,高通坚定pick全球化
  6. UVa1374 Power Calculus(IDDFS)
  7. 移动互联时代:儿童教育重在内容和应用
  8. java 反正多次重复提交_java web开发时防止刷新后的重复提交
  9. python,面向对象的各种方法
  10. 一步一步学习 iOS 6 编程(第四版)正式发布!
  11. TypeScript 编译生成的 JavaScript 源代码里的 ɵcmp 属性
  12. ijkplayer 消息循环处理过程分析
  13. Redis宕机数据丢失解决方案,不吃透都对不起自己
  14. Android自定义控件ImageViwe(四)——多点触控实现图片的自由移动
  15. 4fsk调制matlab_数字调制解调技术的MATLAB与FPGA实现
  16. macos 此服务器的证书无效_网易出现重大失误,忘记续费HTTPS证书导致大量用户受影响...
  17. 2011-寒假 linux 学习笔记
  18. mstar的android方案,Mstar Android 方案.pdf
  19. 总弹出Visual Studio实时调试器的问题
  20. 第七章、Tiny4412 U-BOOT移植七 DDR内存配置

热门文章

  1. Javascript中LenB的计算(ASP)
  2. 用GATK进行二代测序数据 SNP Calling 流程:(二)bwa比对和HaplotypeCaller 变异检测
  3. 易语言 给程序加上记住账号功能
  4. “互联网+教育”促进优质资源共享
  5. pycharm如何打开历史_如何在pycharm中反转控制台历史顺序以进行复制粘贴?
  6. mts如何转换为mp4
  7. android扫描文件,安卓手机怎么扫描文件_手机扫描文件的图文教程-系统城
  8. 程序员转行适合做什么?
  9. Windows Docker Desktop 无法启动报错 Docker Desktop is shutting down 的可能解决办法
  10. java presentation