材料组件是Google材料设计的最佳实践。该库试图在不同的Android版本中统一材料设计UI组件的外观和代码。当然,这些组件在不同的平台上(用于iOS,Web和Flutter的库版本)均匀地统一。Material组件库还实现了新材料设计规范中引入的功能。
官方文档对材料组件有非常详细的解释,如下所示。
https://github.com/materly- components/材料 - 组件ndroid/blob/master/docs/get-started.md.md.md
这次我想谈论的是材料组件中形状的处理。
材料塑形类提供了一个非常有用的工具集,可以对我们的应用实现非常酷的效果。材料类螺旋式脱衣类使我们能够通过指定最终形状和角落的边缘来定义形状。这些基本形状的定义可以通过插值来控制浮动属性允许在角度和边缘上的动画。
为了创建一个自定义材料塑料,ShapeAppaArenceModel可用于构建函数。ShapeApperanceModel使用两类的edgetReatment和CorneTreatment来存储每个边缘和角落的信息(尽管总有4个边缘和4个角落),尽管您可以,但您可以为它们定义几乎所有形状)。您可以为每个边缘和角落设置不同的处理方法,或通过调用为所有边缘和角落设置相同的处理方法。
在Shapepathmodel中,还有一些预先确定的现成的边缘和转角处理,它们已经达到了材料设计规范中引入的大部分形状效果。在目前,浮点半径,浮点大小或浮点大小,内部的boolean可以很好地工作,因为你期待。
关于形状的处理,官员有一个详细的文件,地址如下。
https://github.com/materly- components/材料 - 组件ndroid/blob/master/doc/docs/theming/shape.md
unity材料设计,Google设计的材料组件不仅实现了Android的开发规范,实际上颤抖,网络甚至iOS都统一了开发范式。因此,它们在上面都有类似的阴影。您可以查看https://material.io/develop/android的文档。
通过ShapeAppaArenceModel的构建器功能可以轻松控制角落的形状,如下所示。
MaterialShapeDrwable实际上发挥了可绘制的作用,以创建指定形状的背景。
除了上述设置SettallCorners和SetAllCornersizes以确定转角方法外,它还可以通过以下方式进行。
显示在图中。
同样,您也可以指定边缘的效果。
显示在图中。
如上图所示,也可以在中风上设置材料塑形。
但是,应该在这里注意到布局边界视图问题。默认情况下,将剪切布局边界以外的内容,因此这里使用TriangleDgetReatment(8.dp(),true)。这是正确的。如果将其设置为false,则需要将父视图的Clipchildren属性指定为false。
这个很重要。如果是自定义视图,通常可以在arthtowindow中设置。
在源代码中,已经构建了许多不同类型的EdgetReatment和CorneTreatment。这些基本的边缘和转角处理可以符合大多数用法方案。
除了自定义系统的基本边缘和角落外,您还可以自定义边缘和转角的样式。这是一些处理过的演示。我相信您可以一目了然地了解如何处理它。
当然,除了通过allxxx设置四个角和边缘外,它还可以指定特定的角落或边缘。ShapeappearanceModel的构建器还提供了以下方法来处理单侧和一个角度。
借助单侧和一个角处理,可以完成一些常用的样式处理,例如,聊天接口边界的气泡效应,代码如下所示。
显示效果显示在图中。
尽管MD提供了建立较高视图的SetElevice,但国内设计师通常不同意这一设计概念。他们认为,由高程设定的阴影相对僵硬,不是自然的。在材料形成框的帮助下,我们还可以处理阴影。
一般而言,处理阴影不过是以下方式。
目前,更成熟的事情是使用材料形成框架来达到阴影效果。代码如下所示。
该方法是假阴影的绘图方法。
在这里,您需要将其设置为Shadow_compat_mode_alway,表明始终使用假阴影。Shadowradius,SetShadowColor的几个参数分别代表图形阴影的三个参数。该效果显示在图中。
总而言之,通过材料组件的材料塑料,您基本上可以实施材料设计的所有形状处理。在现代的Android开发中,Google已统一并整理了应用层的许多设计和开发方法。使用这些高级开发工具可以使我们的通常开发更加方便。
对Android和Flutter相关技术感兴趣的朋友,您可以添加我的微信,将您吸引到Flutter Xianxian Group和Android Development Group,Wechat Tomcat_xu。
原始:https://juejin.cn/post/7096291397447188517