【小沐学Android】Material Design设计规范之颜色篇

news2024/11/15 2:02:16

文章目录

  • 1、简介
    • 1.1 Android
    • 1.2 Material Design
  • 2、Material Design 1
    • 2.1 材料设计
    • 2.2 颜色
  • 3、Material Design 2
    • 3.1 材料系统
    • 3.2 颜色
  • 4、Material Design 3
    • 4.1 颜色样式
    • 4.2 配色方案
    • 4.3 Material Theme Builder
  • 结语

1、简介

1.1 Android

谷歌在2007年发布了第一个测试版本的 Android 软件开发工具包(SDK),第一个商业版本的 Android 1.0,则发布于2008年9月。
在这里插入图片描述

2012年6月27日,在谷歌I/O大会上,谷歌宣布发布了 Android 版本4.1 Jelly Bean。 Jelly Bean 是一个在功能和性能方面的渐进的更新,主要目的是改进用户界面,
在这里插入图片描述

Android 源代码是根据自由和开放源码软件许可证。谷歌发布的大部分代码遵循 Apache 许可证2.0版,Linux 内核的变化遵循 GNU 通用公共许可证版本2。

在这里插入图片描述

1.2 Material Design

自Android 2.x时代的拟物设计,Android 3~4的Holo风格以来,Android Design正式更名为Material Design。在Google I/O 2014大会召开,谷歌正式宣布了一种全新的设计风格:Material Design。该设计透露出了大量的扁平(Flat)、层次(Layers)、长阴影(Long Shadow)等元素。

Material Design,中文名:质感设计,是由Google推出了全新的设计语言,这种设计语言旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的“外观和感觉”。
在这里插入图片描述
Material design 是谷歌为旗下全线产品提供的一套完整的设计规范,从2014年发布到现在,Material design 不仅仅是安卓设备阵营的设计规范,这种设计风格甚至被应用在苹果设备和windows设备中。
在这里插入图片描述
在扁平风格的基础上加入了Material design 的设计理念 Material Design 在扁平风格的基础上加入了许多物理现实中的隐喻元素,像质感、投影、速度等等,这些设计都让 Material Design 的可用性增加,并且降低了学习成本。
在这里插入图片描述
在 Material Design 的众多设计理念中,非常有代表性和深远影响的当属Z轴概念 了。
在这里插入图片描述

2、Material Design 1

https://m1.material.io/

2.1 材料设计

  • 目标
    • 创造一种视觉语言,将优秀设计的经典原则与技术和科学的创新和可能性相结合。
    • 开发单个底层系统,实现跨平台和设备大小的统一体验。移动规则是基本规则,但触摸、语音、鼠标和键盘都是一流的输入法。
  • 原则
    • 材料是隐喻。物质隐喻是合理化空间和运动系统的统一理论。该材料以触觉现实为基础,灵感来自对纸张和墨水的研究,但技术先进,对想象力和魔力持开放态度。
    • 粗体、图形化、有意。基于印刷的设计的基本元素 - 排版,网格,空间,比例,颜色和图像的使用 - 指导视觉处理。这些元素的作用远不止取悦眼睛。
    • 运动提供意义。运动尊重并强化了用户作为原动机的地位。主要用户操作是启动运动的拐点,改变了整个设计。
  • 环境
    • 材质设计是包含光线、材质和投射阴影的三维环境。所有材质对象都具有 x、y 和 z 维度。所有材质对象都有一个 z 轴位置。主光创建定向阴影,环境光创建柔和的阴影。
      在这里插入图片描述

2.2 颜色

https://m1.material.io/style/color.html#color-color-palette
材质设计中的色彩灵感来自大胆的色调与柔和的环境、深阴影和明亮的高光并列。

  • 颜色工具
    颜色工具可帮助您创建、共享调色板并将其应用于 UI,以及测量任何颜色组合的辅助功能级别。
  • 调色板
    此调色板包括可用于插图或开发品牌颜色的主要颜色和强调色。它们旨在和谐地相互协作。调色板从原色开始,填充光谱,为Android,Web和iOS创建完整且可用的调色板。Google 建议使用 500 种颜色作为应用中的原色,其他颜色作为强调色。
  • 色彩系统
    在材质设计中,原色(primary color )是指应用中出现频率最高的颜色。辅助颜色(secondary color)是指用于突出 UI 关键部分的颜色。
    在这里插入图片描述
  • 原色(primary color )
    原色是应用屏幕和组件上最常显示的颜色。如果您没有辅助颜色,它也可用于强调元素。要在元素之间创建对比,您可以使用较浅或较深的原色色调。较亮和较深色调之间的对比度有助于显示图面之间的划分,例如状态栏和工具栏之间的划分。
    在这里插入图片描述
  • 辅助颜色(secondary color)
    辅助颜色用于强调 UI 的选定部分。它可以与您的原色互补或相似,但它不应该只是原色的浅色或深色变化。它应该与周围的元素形成对比,并谨慎地用作重音。使用辅助颜色是可选的。如果您使用原色的变化来强调元素,则没有必要。
    辅助颜色最适合用于:
    • 按钮、浮动操作按钮和按钮文本
    • 文本字段、光标和文本选择
    • 进度条
    • 选择控件、按钮和滑块
    • 链接
    • 标题

在这里插入图片描述

  • 在应用中使用颜色
    大型 UI 区域和元素应使用原色着色。辅助颜色可用于强调较小的区域。如果没有辅助颜色,则可以改用原色来表示这些区域。
    在这里插入图片描述

3、Material Design 2

https://m2.material.io/
Material 是 Google 创建的设计系统,旨在帮助团队为 Android、iOS、Flutter 和网络构建高质量的数字体验。
在这里插入图片描述

3.1 材料系统

  • 材料是隐喻
    Material Design的灵感来自物理世界及其纹理,包括它们如何反射光线和投射阴影。材料表面重新构想了纸张和墨水的媒介。
  • 粗体、图形化、有意
    材料设计以印刷设计方法(排版、网格、空间、比例、颜色和图像)为指导,以创建层次、意义和焦点,让观众沉浸在体验中。
  • 运动提供意义
    运动通过微妙的反馈和连贯的过渡来集中注意力并保持连续性。当元素出现在屏幕上时,它们会通过交互来转换和重组环境,从而产生新的转换。
  • 组件
    材质组件是用于创建用户界面的交互式构建基块,包括一个内置状态系统,用于传达焦点、选择、激活、错误、悬停、按下、拖动和禁用状态。组件库可用于Android,iOS,Flutter和Web。

3.2 颜色

材质的颜色系统是一种将颜色应用于 UI 的有组织的方法。全局颜色样式在组件中具有语义名称和定义的用法 - 主要(primary)、次要(secondary,品牌颜色)、表面、背景和错误。

每种颜色还具有互补色,用于放置在其“顶部”的元素,以促进一致性和可访问的对比度。
在这里插入图片描述

  • 动态颜色简介
    动态色彩是Material Design色彩系统的最新发展,让个人设备感觉个性化。Material Design 3 支持 Android S 的算法颜色提取,从而生成自定义色调调色板,可轻松应用于浅色、深色和高对比度界面。

  • 基线材质颜色主题
    Material Design 采用内置的基线主题设计,可以按原样使用,直接开箱即用。
    这包括以下各项的默认颜色:

    • 原色和副色
    • 原色和副色的变体
    • 其他 UI 颜色,例如背景、表面、错误、版式和图标的颜色。
      在这里插入图片描述
  • 原色(Primary color)
    原色是应用屏幕和组件上最常显示的颜色。
    若要在 UI 元素(如系统栏中的顶部应用栏)之间创建对比,可以使用原色的浅色或深色变体。您还可以使用它们来区分组件中的元素,例如浮动操作按钮的图标与其圆形容器。

  • 辅助颜色(Secondary color)
    次要颜色提供了更多方法来强调和区分您的产品。具有辅助颜色是可选的,应谨慎应用以突出 UI 的选定部分。

  • 表面、背景和错误颜色
    表面、背景和错误颜色通常不代表品牌:

    • 表面颜色会影响组件(如卡片、图纸和菜单)的表面。
    • 背景色显示在可滚动内容后面。基线背景和表面颜色#FFFFFF。
    • 错误颜色指示组件中的错误,例如文本字段中的无效文本。基线错误颜色为#B00020。
  • 材质调色板生成器
    材质调色板生成器可用于为您输入的任何颜色生成调色板。色调、色度和亮度通过一种算法进行调整,该算法创建可用且美观的调色板。

  • 2014 材料设计调色板
    这些调色板最初由Material Design于2014年创建,由旨在和谐协同工作的颜色组成,可用于开发您的品牌调色板。要生成您自己的和谐调色板,请使用调色板生成工具。
    在这里插入图片描述

4、Material Design 3

4.1 颜色样式

  • 动态色彩
    动态色彩体验是使用 M3 配色方案构建的。从 Android 12 开始,用户可以通过壁纸选择和其他自定义设置生成个性化方案。以 M3 为基础,用户生成的颜色可以与应用颜色共存,从而将一系列可自定义的视觉体验交到用户手中。
    在这里插入图片描述

4.2 配色方案

Material Design有官方配色网站,只需要登录并随意采取2-3种颜色就能生成一种配色方案,当然你需要根据主题来确定主色,其他的为辅色和点缀色。可以直接截图复制到PPT里面,通过取色器取色使用。

https://www.materialpalette.com/

在这里插入图片描述

4.3 Material Theme Builder

https://m3.material.io/theme-builder
Material Theme Builder是一种新工具,可帮助您可视化材质的动态颜色并创建自定义材质设计 3 主题。通过内置代码导出,可以轻松迁移到 Material 的新颜色系统并利用动态颜色。

  • 由设计令牌提供支持的主题
    材料设计可以定制,以代表各种风格选择。主题是一组样式选择,用于定义产品的视觉外观。在Material Design 3中,我们引入了设计令牌 - 反映系统视觉风格的小型可重用设计决策。通过使用令牌而不是静态值进行构建,设计和代码共享事实来源。
    在这里插入图片描述
  • 可视化动态颜色
    动态颜色在 Material You 中起着关键作用,为您的用户创造个性化和富有表现力的体验。设计令牌及其分配的颜色角色允许应用无缝接受任何动态配色方案来代替预设的颜色值。
    在这里插入图片描述
  • 构建自定义主题
    为了利用Material You引入的最新功能,您需要迁移到Material Design 3。材质 3 主题通过引入新的颜色角色和弃用其他颜色角色来扩展材质 2 的色彩空间。
    在这里插入图片描述
  • 导出到代码
    Material Theme Builder允许您将主题代码导出为多种格式:Android Views (XML),Jetpack Compose(Kotlin)和Design System Package (DSP)。
    在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

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

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

相关文章

chatgpt赋能python:Python清除代码:让你的项目更加优美

Python清除代码:让你的项目更加优美 随着时间推移和项目规模扩大,代码中可能会出现许多冗余、无用或重复的代码。这不仅会让代码难以维护,还会降低代码的性能和可读性。而Python作为一种高级编程语言,提供了许多工具和技术来清除…

牛客练习赛108 E.琉焰(非树边性质/线段树分治+可撤销并查集 or LCT)

题目 思路来源 官方题解 题解 针对每个连通块,单独考虑: 一方面, 任取连通块的某棵生成树, 对于任意非树边(u,v),把树边u到v上的所有边都选中,即被覆盖1次, 任取某个非树边集合S&#xff…

LangChain for LLM Application Development 基于LangChain开发大语言应用模型(下)

以下内容均整理来自deeplearning.ai的同名课程 Location 课程访问地址 DLAI - Learning Platform Beta (deeplearning.ai) LangChain for LLM Application Development 基于LangChain开发大语言应用模型(上) 一、LangChain: Q&A over Documents基于文…

bert4rec简介

1、bert4rec提出动机 用户行为动态变化,序列行为建模取得了不错的效果 单向结构限制了行为序列中隐藏信息的挖掘 序列神经网络顺序依赖,无法并行计算 为此,提出了 基于双向self-attention和Cloze task的用户行为序列建模方法。据我们所知…

解决Jenkins报错

解决Jenkins报错 1 linux空间不够问题1.1 报错现象1.2 定位问题1.3 解决措施 2 bash问题2.1 问题现象2.2 问题定位2.3 解决措施 3 虚拟环境问题3.1 问题现象3.2 问题定位3.3 解决措施 4 jenkins构建完成但一直转圈问题4.1 问题现象4.2 问题定位4.3 解决措施 5 jenkins自动化部署…

C高级6.24

一、整理grep、find、cut、tar、apt-get、dpkg、ln、ln-s指令 1.grep ----->查找字符串 grep 字符串 文件名 -w:按单词查找 -R:实现递归查找,主要用于路径是目录的情况 -i:不区分大小写 -n:显示行号 grep -w "^ubuntu" /etc/passwd ---->查找以ub…

【深度学习】RepVGG解析和学习体会

文章目录 前言0. Vgg1.RepVGG Block 详解 前言 论文名称:RepVGG: Making VGG-style ConvNets Great Again 论文下载地址:https://arxiv.org/abs/2101.03697 官方源码(Pytorch实现):https://github.com/DingXiaoH/RepV…

今天是世界Wi-Fi日!

很多人都不知道,今天其实是世界Wi-Fi日: 这个特殊的纪念日,是由无线宽带联盟(Wireless Broadband Alliance)确定的,并得到了互联城市咨询委员会 (CCAB)等组织的大力支持。 无线宽带联…

数据处理神器tidyverse!教你如何秒速搞定数据处理!

一、前言 在R语言中,tidyverse是一个庞大的数据分析生态系统,它由一系列数据可视化和数据处理软件包组成,能够极大地提高数据分析的效率和准确性。 在使用 Tidyverse 的过程中,我们会经常用到以下几个工具: ggplot2&am…

chatgpt赋能python:Python浮点数:介绍、精度和应用

Python浮点数:介绍、精度和应用 Python是一种高级编程语言,许多程序员使用Python编写计算机程序。与其他编程语言不同,Python是一种动态类型的语言,并且它处理浮点数时更加灵活。在本文中,我们将介绍Python浮点数的概…

python自动化办公——读取PPT写入word表格

Python自动化办公——读取PPT内容写入word表格 文章目录 Python自动化办公——读取PPT内容写入word表格一、需求分析二、导入依赖三、代码四、结果及总结 一、需求分析 📖由于我们知识图谱课程需要将课堂小组汇报的PPT总结成word文档,而我觉得一页一页复…

win10安装nginx的配置和使用方法(图文)

window10系统安装nginx服务,提供网页方面的服务。下面为详细图文安装配置教程。 1)下载nginx软件 官方下载地址:http://nginx.org/en/download.html 2)解压缩软件 unzip nginx-1.20.1.zip 或者 使用解压缩软件,下…

视频与AI,与进程交互(二) pytorch 极简训练自己的数据集并识别

目标学习任务 检测出已经分割出的图像的分类 2 使用pytorch pytorch 非常简单就可以做到训练和加载 2.1 准备数据 如上图所示,用来训练的文件放在了train中,验证的文件放在val中,train.txt 和 val.txt 分别放文件名称和分类类别&#xff…

Android之 弹框总结

一 简介 1.1 弹框即浮与页面之上的窗口,如键盘弹框,吐司弹框,确认弹框,下拉选择框,应用悬浮框等 1.2 弹框控件也很多,比如常用的Spinner,Dialog,Toast,PopWindow等&…

小主机折腾记14

1.m72e主机,3240t-2390t-3470t测试; 2390t官方参数 在m72e上 全核3.08Ghz 单核3.28-3.31Ghz 核显2帧 评分 3470t官方参数 在m72e上 全核睿频3.28 单核最高3.44 核显1.2帧???还不如那啥HD2000 最后评分 进入…

chatgpt赋能python:Python求累加的方法及其应用

Python求累加的方法及其应用 在Python编程中,经常需要对一系列数字进行求和或累加的操作。那么在Python中,我们可以通过哪些方法来实现这个功能呢?本文将为大家介绍Python求累加的方法及其应用。 1. Python中的for循环 首先,我…

05-事件循环

事件循环 以下知识点都涉及到事件循环 计时器,promise,ajax,node 明白此知识点,是前端的分水岭,可以提高效率,js中奇怪的东西都可以得到解决,整个过程是根据W3C和谷歌源码进行 浏览器的进程…

一文理解cast转换

目录 写在前边 1. what?又报错: 2. 靠,难道是这样? 3. 小试牛刀 4. 实际中的“坑” 写在后边 写在前边 关于$cast转换的结论无外乎以下四条: 如果将子类句柄复制给父类句柄,可以实现父类句柄的向下转换…

翻筋斗觅食策略改进灰狼算法

目录 一、动态扰动因子策略 二、翻筋斗觅食策略 三、改进灰狼算法收敛曲线图 灰狼优化算法(grey wolf optimization,GWO)存在收敛的不合理性等缺陷,目前对GWO算法的收敛性改进方式较少,除此之外,当GWO迭代至后期,所有灰狼个体…

企业版:Select.PDF Library for .NET

HTML 到 PDF API SelectPdf提供了一个REST API,可用于通过我们的专用云服务将html转换为任何语言的pdf。 另存为 PDF 链接 以非常简单的方式将“转换为PDF”功能添加到您的网站或博客。只需添加一个指向您的网页的链接,您就完成了。 适用于 .NET 的 PD…