首页 > 其他分享 >Android 启用 Material Design 3(Material You) 小白教程

Android 启用 Material Design 3(Material You) 小白教程

时间:2023-04-09 16:45:57浏览次数:47  
标签:Material 颜色 material Material3 Design components 壁纸 Android

介绍

md3的效果:
原本是红色壁纸对应的红色App主题,在改成绿色壁纸之后,App主题也相应的变成绿色了。
image
这个效果主要是使用了Material You中的动态颜色功能。

官方文档 https://m3.material.io
具体每个组件的代码示例,在 github 上:
https://github.com/material-components/material-components-android/tree/master/docs/components

1、什么是Material You
Material You也称Material3或M3,是第三代Material Design设计语言。

Material You将颜色重新定义为更加个性化的体验,助力于构建出色且富有表现力的应用。

2、什么是动态颜色
动态颜色(Dynamic Color)是Material You的关键部分,通过动态配色提取算法从用户的壁纸中派生出颜色方案,且符合无障碍使用的标准,亦或是自定义的个性化颜色方案,然后应用于系统UI和应用程序,从而让设备变得更加个性化。

3、动态颜色的原理是什么

  • 首先,从用户的壁纸上提取一种源颜色,并推算出5中关键颜色,比如primary、Secondary、Tertiary等。
  • 然后,将每个关键颜色转化为由13种色调组成的调色板,且每种色调会生成对应的浅、深色方案。
  • 最后,通过系统Token将从壁纸提取的颜色方案和App Theme关联起来,在DynamicColorsActivityLifecycleCallbacks中判断是否需要覆盖。

引入方法

https://m3.material.io/libraries/mdc-android/getting-started

md3和 md2 引入方式是一样,但是需要:

  • material库版本到1.5.0及以上
  • compileSdkVersion,targetSdkVersion设置为 31以上
  • 使用最新的 Android Studio

具体操作如下:

更新Gradle依赖

需要更新Gradle依赖,将material库版本到1.5.0及以上

Gradle依赖位置
image
image

implementation 'com.google.android.material:material:1.5.0'	

In order to use the new Material3 themes and component styles, you should depend on version 1.5.0 or later.

compileSdkVersion,targetSdkVersion设置为31以上

Material3 主题

例如:Theme.Material3.DayNight 或者 Theme.Material3.DayNight.NoActionBar

只用之后的好处是:

Material3 themes enable a custom view inflater, which replaces default components with their Material counterparts. Currently, this replaces the following XML components:

部分组件自动变成 Material3 样式:

<Button → MaterialButton
<CheckBox → MaterialCheckBox
<RadioButton → MaterialRadioButton
<TextView → MaterialTextView
<AutoCompleteTextView → MaterialAutoCompleteTextView
颜色主题

参考1
版权声明:本文为CSDN博主「yechaoa」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yechaoa/article/details/124541072

参考2

标签:Material,颜色,material,Material3,Design,components,壁纸,Android
From: https://www.cnblogs.com/kingwz/p/17300537.html

相关文章

  • 解决Flutter_Boost,在Android Studio 出现“Cannot resolve symbol” 的问题
    今天在调试的时候,Android Studio报了一个莫名其妙的错误Cannot resolve symbol'R'让人不知所措,怎么会出现 Cannot resolve symbol 这种错误呢?下面给大家分享Android Studio 出现“Cannot resolve symbol”解决方案,需要的朋友可以参考下一:AndroidStudio无法识别同......
  • Android学习笔记(五十):声明、请求和检查许可
    基于安全需求,应用对Android系统提供的contentprovider或者service的访问需要在安装时进行许可,这就是AndroidManifest.xml文件中的permission中声称,之前已经很多例子。同样如果其他应用要访问我们的数据,我们也可以要求这些应用必须获得用户授权方可访问我们的数据。申请授权:请求per......
  • VisionMobile:移动平台生态系统冲突报告(八)Chapter C:Android(下)
    开发者的采纳2011年10月,AndroidMarket有30万应用,紧随Apple,是第二大的平台应用商店。功能丰富和易于学习的应用架构,强大的SDK,结合不断增长的手机数量,使大量开发者从PC领域和移动领域(Symbian,J2ME,WindowsMobile,和PalmOS)进入Android。在我们2011年开发者经济学研究中,Android名列开发......
  • VisionMobile:移动平台生态系统冲突报告(七)Chapter C:Android(上)
    操作系统来自Google在2005年收购的Android公司,该创业公司由ex-Danger和T-Mobile高管在SideKick开发后成立。SideKick是在青少年和一些名人中流行的移动设备。2007年11月,Google与合作伙伴宣布成立开发手机联盟(OHA),公布了开发名为Android的开源移动操作系统的业界承诺签署。在平台开......
  • Pro Android学习笔记(九):了解Content Provider(下下)
    Contentprovider作为信息的读出,比较常见的还有文件的读写,最基础的就是二进制文件的的读写,例如img文件,音频文件的读写。在数据库中存放了该文件的路径,我们可以通过ContentProvider获得InputSream和OutputStream,实现对文件的操作。ProAndroid4.0提及有关内容,但语焉不详,可同时参考h......
  • Pro Android学习笔记(八):了解Content Provider(下中)
    在之前提供了小例子BookProvider,我们回过头看看如何将通过该ContentProvider进行数据的读取。(1)增加privatevoidaddBook(Stringname,Stringisbn,Stringauthor){/*从ContentProvider的insert()方法的参数可以看到,通过ContentValues来进行数据的传递。ContentValues是k......
  • Android学习笔记(五四):通知Notification(上)
    运行在后台的Service,需要某种方式来通知用户,例如通知用户来电,通知有新的消息。这类的通知显示在statusbar上,还可以带有硬件的提醒,例如振动、LED灯闪,播放声音等等。在Android中,可以通过NotificationManager来发起一个通知。我们先看一个简单的例子,如有图所示。界面很简单,两个大butt......
  • Android学习笔记(五三):服务Service(下)- Remote Service
    之前所谈的Service属于LocalService,即Service和Client在同一进程内(即同一application内),Service的生命周期服从进程的生命周期。在实际应用上,有时希望Service作为后台服务,不仅被同一进程内的activity使用,也可被其他进程所使用,针对这种情况,需要采用bindService,也就是RemoteService......
  • Android学习笔记(四九):通过Content Provider访问数据
    在上次笔记中,我们编写了自己的Provider,这次笔记,我们将通过ContentProvider的Uri接口对数据进行访问,重写Android学习笔记(四二)中例子。在这里我们不在充分描述相关UI如何编写,可以到笔记(四二)中详细查看,重点讲述如何实现数据的访问。读取信息读取信息方式,在笔记(四七)中已经介绍,代码如下......
  • Android学习笔记(四八):提供自己的Content Provider
    在上一次的学习中,采用了原生的内容提供者Contact,Contact有多层映射关系,比较复杂,并非作为小例子的好选择,在本次学习中,我们将学习如何建立ContentProvider,并通过Uri进行增删改查。如果应用的数据只需自己使用,并不需要contentprovider,相反避免这样做,可直接访问数据;但是若希望数据可......