layout: post
title: Android深色主题背景的实现及主题背景颜色互换
date: 2-12-03 21:52:38 发布
author: ‘zhangtao’
header-img: ‘img/post-bg-2015.jpg’
catalog: false
tags:
-android
-android studio
-ide


目录

深色主题背景的优势:

如何实现Android的深色主题模式:

控制App内深色模式的自由切换:

深色主题背景的优势:

1.减少耗电量

2.提高深夜中的可视性

Android 10及更高版本中提供深色主题背景。

可以通过以下方法启用深色主题背景:

  • 使用系统设置启用深色主题背景。
  • 在 Pixel 设备上,选择“省电模式”将同时启用深色主题背景。

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

  • 浅色
  • 深色
  • 系统默认

如何实现Android的深色主题模式:

1.创建一个Empty Activity

2. 若没有style.xml,则按照该路径创建了一个res/values/styles.xml:

  1. 在style.xml中添加将应用的主题背景设置为继承DayNight主题背景:
<style name="AppTheme" parent="Theme.AppCompat.DayNight">

或使用MaterialComponent 的深色主题背景:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">

4.在main中加入:

<LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:forceDarkAllowed="true">
</LinearLayout>

5.在主题中加入:

<style name="AppTheme.NoActionBar"><item name="android:forceDarkAllowed">true</item>
</style>

6.最终能达成的效果:

如要检查当前采用的是哪种主题背景,应用可以运行如下代码:

int currentNightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK;
switch (currentNightMode) {case Configuration.UI_MODE_NIGHT_NO:break;case Configuration.UI_MODE_NIGHT_YES:break;
}

控制App内深色模式的自由切换:

AppCompatDelegate里包含这么几种: MODE_NIGHT_NO: 使用亮色主题,不使用夜间模式 MODE_NIGHT_YES:使用暗色主题,使用夜间模式 MODE_NIGHT_AUTO:根据当前时间自动切换 亮色/暗色主题 MODE_NIGHT_FOLLOW_SYSTEM(默认选项):设置为跟随系统,通常为 MODE_NIGHT_NO

可以使用Android Studio自带的方法setDefaultNightMode():

AppCompatDelegate.setDefaultNightMode()

注意:setDefaultNightMode()对整个系统生效。

另一个方法:

setLocalNightMode()可以对单独页面生效。

但只能由getDelegate().setLocalNightMode()调用。
洪伟棋
原文链接:https://blog.csdn.net/m0_58773350/article/details/128149967?spm=1001.2014.3001.5501

Android深色主题背景的实现及主题背景颜色互换相关推荐

  1. Android Studio (11)---使用主题背景编辑器设计应用主题背景

    使用主题背景编辑器设计应用主题背景 Android Studio 包含被称为主题背景编辑器的视觉辅助工具,以帮助您: 创建和修改应用的主题背景. 调整不同资源分类器的主题背景. 可视化更改公共 UI ...

  2. android主题资源,使用 Theme Editor 设计应用主题背景

    警告:从版本 3.3 开始,Theme Editor 不再包含在 Android Studio 中. Android Studio 包含一个名为 Theme Editor 的视觉辅助工具,该工具可以帮 ...

  3. android自动切换暗色,超实用!Android 深色模式适配(可定时开启的APP内主题切换管理工具)...

    前言 前面分享了一篇"黑白化主题"的文,主要适用场景是不久就要到来的"清明"等时节或者是其他的国家公祭日什么的(一名成熟的程序员,要学会自己提产品需求). 今天 ...

  4. android 9.0谷歌商店,Android 10现可选择Play商店主题模式 附Android 9强制开启深色模式教程...

    不可否认的是自打苹果于去年推出配备深色模式的 iOS 13以来,整个移动互联网都开始流行起为应用配备深色模式设计的风气,不管用户个人到底喜不喜欢用深色模式,深色模式都已经给出了足够具有说服力的理由来推 ...

  5. android 主题 设置统一背景_安卓自定义系统背景美化主题及修改教程

    想自己美化安卓系统界面是意见比较麻烦的事情,有些朋友会去网上找全局透明教程,但全局透明后滑动感觉延迟感很严重,所以我认为全局透明感觉并不可取,固定一张系统背景也可以达到美化的效果,并且不会像全局透明那 ...

  6. android设置主题背景为壁纸_主题壁纸美化app下载-主题壁纸美化安卓版(DIY定制) - 超好玩...

    主题壁纸美化是一款非常实用的手机壁纸软件,海量图片素材可以包揽你的桌面.头像.背景图等等,主题壁纸美化安卓版(DIY定制)还有特殊的透明壁纸,可以设置个性挂件,让你的桌面动起来,感兴趣的小伙伴快来下载 ...

  7. android下apkplug通用主题(皮肤)切换解决方案之主题包开发-02

    该文章是基于apkplug V1.6.8 进行说明的 我们提供了一个demo做为参考,项目下载地址为:http://git.oschina.net/plug/IMThemeDemo 该 IMTheme ...

  8. ANDROID L——Material Design详解(主题和布局)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  9. Android应用开发中的风格和主题(style,themes)

    越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验,这些客户端都做得布局合理而且美观.......Android的Style设计就是提升用户体验的关键之一.Android上的St ...

最新文章

  1. https加密解密过程详解
  2. C语言二叉树的逆向有序遍历(附完整源码)
  3. java kaptcha_java相关:kaptcha验证码使用方法详解
  4. UI5 setModel 的核心逻辑
  5. 通过aws部署推荐系统_通过AWS Elastic Beanstalk轻松进行Spring Boot部署
  6. 抓包工具Stream之接口调试和加密解码(二)
  7. 输入任意两个两位的自然数,输出它们完整的乘法竖式。
  8. css 系统自学笔记2017-12-04
  9. Vue实例和生命周期 1
  10. mac系统不能使用127.0.0.2的解决方案
  11. hdu 3784 继续xxx定律
  12. perl语言入门(1)标量数据
  13. forge下载java_我的世界forge1.9.4
  14. php域名查询,域名查询 PHP 代码
  15. HTML5中fillStyle和fillRect的先后顺序的理解
  16. 逆袭之路——python进阶基础之 网络编程【day32】
  17. 云计算平台 python_云计算开发 python
  18. Linux: 宏:__stringify,字符串化传入参数
  19. Stata新命令-prodest:不再畏惧生产函数
  20. 蚂蚁金服@玉伯:我的前端成长之路

热门文章

  1. 一份很全的路由器默认初始密码
  2. 【优化求解】基于缎蓝园丁鸟优化 (SBO)求解单目标问题matlab源码
  3. win7启动提示:bootMGR被压缩
  4. ModuleNotFoundError: No module named xxx 的原因和解决办法(附带新大陆)
  5. Excel day 01 基本操作1
  6. 40套服装行业响应式Html5模板春夏时装秀网站模板穿衣搭配网站模板瀑布流排版风格网站模板模特服装展企业网站模板html5网页静态模板Bootstrap扁平化网站源码css3手机seo自适响应
  7. php进程名,编码会馆
  8. 贝塞尔曲线德卡斯特里奥(de Casteljau)算法
  9. 二十几岁为什么是人生的一道坎
  10. 自动计算器c语言,C语言实现计算器