Android12 material you 动态配色

news2024/11/14 19:51:45

动态配色功能是 Material You 设计的核心

一、完整的动态配色流程包括四个步骤,如下所示:

在这里插入图片描述

  1. 用户通过 OEM 选择器更改壁纸或主题。
  2. AOSP 逻辑会自动从所选壁纸中提取单一源颜色。
  3. 将源颜色扩展到颜色API,AOSP 将单一源颜色扩展为 5 ,每种调色板包含 13 个色调颜色变体,然后填充 65 个颜色属性。
  4. 以非硬编码的方式在应用界面使用这 65 个颜色属性,这些属性在整个 Android 应用生态系统中保持一致。
  • 对应用和系统界面中的前景元素使用强调色: accent1 、accent2 、accent3
  • 对应用和系统界面中的背景元素使用强调色: neutral1 、neutral2

官方文档:https://source.android.google.cn/docs/core/display/material?hl=zh-cn

二、硬编码与动态访问的区别

1、硬编码

 android:background="#F0F000"

2、动态访问

android:background="?attr/colorPrimary"
android:background="?android:colorSecondary"
android:backgroud="@android:color/system_accent1-0"

3、@ 和 ?的区别

@ 资源引用:

用于引用系统(Android SDK)和我们在项目中添加的一些固有资源(drawable,string等)。

?属性引用:

用于引用当前主题中定义的一些属性值,“ ?”符合通过属性名字间接引用当前主题中的对应属性值,而不是属性本身。

三、常用的颜色角色及使用场景

在这里插入图片描述


1、colorPrimary 应用的主要色调,actionBar默认使用该颜色,Toolbar导航栏的底色

2、colorPrimaryDark 应用的主要暗色调,statusBarColor默认使用该颜色

3、statusBarColor 状态栏颜色,默认使用colorPrimaryDark

4、windowBackground 窗口背景颜色

5、navigationBarColor 底部栏颜色

6、colorForeground 应用的前景色,ListView的分割线,switch滑动区默认使用该颜色

7、colorBackground 应用的背景色,popMenu的背景默认使用该颜色

8、colorAccent CheckBoxRadioButtonSwitchCompat等一般控件的选中效果默认采用该颜色

9、colorControlNormal CheckBoxRadioButtonSwitchCompat等默认状态的颜色。

10、colorControlHighlight 控件按压时的色调

11、colorControlActivated 控件选中时的颜色,默认使用colorAccent

12、colorButtonNormal 默认按钮的背景颜色

13、editTextColor :默认EditView输入框字体的颜色。

14、textColor Button,textView的文字颜色

15、textColorPrimaryDisableOnly RadioButton checkbox等控件的文字

16、textColorPrimary 应用的主要文字颜色,actionBar的标题文字默认使用该颜色

17、colorSwitchThumbNormal switch thumbs 默认状态的颜色. (switch off)

在这里插入图片描述

四、values、valuse-v31(valuse-night、valuse-night-v31)文件夹资源的加载顺序

如果当前设备版本低于V31,则使用默认values;如果当前版本为V31,则优先使用valuse-v31。

五、自定义控件颜色设置的优先级顺序

使用控件时设置的 color > 控件的 style > 当前主题的 theme > 系统模式的 default 样式

六、android 资源文件命名规则(配置限定符名称)

https://blog.csdn.net/qq_19973845/article/details/103459712

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464961.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JS实现拼音(字母)匹配(搜索)汉字(姓名)

这就是个模糊查询,我们平常做的都是直接输入汉字去把对应的值过滤出来,但我还真是第一次通过拼音去查询(当然不只是拼音,汉字也是可以的),以前还真没注意这个。唉,这可咋搞,我怎么知…

python:面向对象编程(知识点+代码)

文章目录 一、类和对象1、对象属性的默认值设置2、对象属性的添加、修改与删除3 、类属性 二、类的继承 引言:面向对象编程时一门编程语言重要的功能,我们之前所学的 c,java都为面向对象编程语言,这里给大家拓展一下,…

getaddrinfo调用crash 的debug过程

前两天,产线报一例crash问题。拿到core文件后,栈展开信息: (gdb) bt #0 0x00007f64a3651aff in raise () from /lib64/libc.so.6 #1 0x00007f64a3624ea5 in abort () from /lib64/libc.so.6 #2 0x00007f64a3694097 in __libc_message () …

【论文阅读-ICSE2023】预训练目标对代码相关任务的影响

目录 简介有哪些预训练预训练的影响回答RQ1回答RQ2 总结 简介 Title: Automating Code-Related Tasks Through Transformers: The Impact of Pre-training1 Author: Rosalia Tufano, Luca Pascarella, Gabriele Bavota Published: ICSE2023 Abstract: 尽管现在很多研究能够证…

OSS的STS模式授权案例

OSS的STS模式授权 某云提供的权限管理系统主要包含两部分,RAM(资源访问管理)和STS(安全认证服务),以满足不暴露主账号AK\SK的情况下安全的授权别人访问的需求,STS提供的是一种临时访问授权。通…

XSS知识总结

XSS基础 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这…

楼层滚动效果(超级简单,易懂)

系列文章目录 文章目录 系列文章目录一、楼层滚动效果图如下1. 下图是纯Css实现的楼层滚动2.通过Js优化后的楼层滚动如下图(🌹🌹) 二、楼层滚动(Css实现)1.滚动原理2.代码如下 三、楼层滚动(JsCss优化后的楼层滚动&…

FreeRTOS学习笔记(二)——内核机制

文章目录 0x01 临界段Cortex-M内核快速关中断指令关中断开中断进入和退出临界段的宏进入临界段退出临界段临界段代码应用 0x02 空闲任务与阻塞延时的实现空闲任务的创建实现阻塞延时阻塞等待总结 0x03 多优先级通用方法:taskRECORD_READY_PRIORITY()taskSELECT_HIGH…

微服务学习——服务异步通讯

实用篇-RabbitMQ 初识MQ 同步调用的问题 微服务间基于Feign的调用就属于同步方式,存在一些问题。 耦合度高 每次加入新的需求,都要修改原来的代码性能下降 调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和…

【数据库】事务的隔离级别以及实现原理

文章目录 前言一、事务什么是事务?事务的四大特性分别是 二、事务并发存在的问题脏读可重复读不可重复读幻读 三、以MYSQL数据库来分析四种隔离级别第一种隔离级别:Read uncommitted(读未提交)第二种隔离级别:Read committed(读提交)第三种隔…

此环境变量太大,此对话框允许将值设置为最长 2047 个字符

背景: 自己是一个计算机爱好者,又大体精通计算机各种编程语言,所以电脑上安装的各种编译或者编程软件比较多,有一天需要安装一个多版本的python环境,发现无法添加环境变量,于是乎,自己去查看原因并解决这个…

C语言 sizeof, size_t, strlen

C语言 sizeof, size_t, strlen 文章目录 C语言 sizeof, size_t, strlen一. sizeof1.1 返回结构体长度 二. size_t三. sizeof 和 strlen 一. sizeof 返回一个结构体或者类型所占的内存字节数 1.1 返回结构体长度 这里我编写了2个结构体,区别在于数组问题 #include …

智慧园区gis三维数字孪生可视化平台辅助管理者提升安全管控效力

随着信息技术的发展,3D可视化已经成为交互式管理的主流。智慧3D可视化交互管理平台能够帮助企业实现高效、灵活的管理。 1:智慧3D可视化交互管理平台的基本特性 智慧3D可视化交互管理平台能够实时显示工厂中生产车间的设备和生产线的运行状态,并通过交互…

火焰图怎么看

性能平台 通过该平台可以使用pprof采集线上的服务指标数据生成CPU占用数据并自动绘制出火焰图,Top,以及函数调用图等。 1.1 火焰图 火焰图的深度代表了函数的调用栈,火焰图最深处就是正在执行的函数,上方的都是它的父函数&#x…

C++线程的简单学习及了解

此篇文章只是线程的简单了解。 文章目录 前言一、线程的优缺点二、C线程库 1.thread类的简单介绍2.线程函数参数总结 前言 什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控…

git 使用大全及各种疑难杂症解决方法(长期更新)

Git使用中遇到的各种问题及解决方法 git clone后修改文件然后再上传覆盖 git push出现“Everything up-to-date”解决方法 git commit后如何撤销或修改 git 同步远程和本地的同名分支 git push异常问题出现符号解决方法 git 删除最近或者任意一次提交commit

Http详解

一、什么是Http协议 Http全称为超文本传输协议,是目前使用最主流的 应用层协议, 二、Http工作过程 当我们在浏览器中输入一个 “网址”, 此时浏览器就会给对应的服务器发送⼀个 HTTP 请求. 对方服务器收到这个请求之后, 经过计算处理, 就会返回⼀个 …

DAY06_常用API上

1:API 概述 1.1 API概述 如何自己设计对象并使用 获取已有对象并使用 而关于第一块知识:学习如何自己设计对象并使用,现在已经有一些基础了。 API(Application Programming Interface) :应用程序编程接口 那如何理解应用程序…

软件测试技术(四)白盒测试

白盒测试 白盒测试(White Box Testing)又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试只测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误&#xff0c…

IDEA弹出`Lombok requires enabled annotation processing`错误信息

问题背景 项目启动时,弹出一个报错窗口 问题原因 当您使用 Lombok 库时,您可能会遇到Lombok requires enabled annotation processing的错误消息。这是因为 Lombok 库使用了 Java 注解处理器(annotation processor),而…