Material Design 为 UI 元素引入高度。高度将帮助用户了解每个元素的相对重要性,让他们能够集中于手边的工作。
由 Z 属性所表示的视图高度将决定其阴影的视觉外观:拥有较高 Z 值的视图将投射更大且更柔和的阴影。 拥有较高 Z 值的视图将挡住拥有较低 Z 值的视图;不过视图的 Z 值并不影响视图的大小。
阴影是由提升的视图的父项所绘制,因此将受到标准视图裁剪的影响,而在默认情况下裁剪将由父项执行。
由 Z 属性所表示的视图高度将决定其阴影的视觉外观:拥有较高 Z 值的视图将投射更大且更柔和的阴影。 拥有较高 Z 值的视图将挡住拥有较低 Z 值的视图;不过视图的 Z 值并不影响视图的大小。
阴影是由提升的视图的父项所绘制,因此将受到标准视图裁剪的影响,而在默认情况下裁剪将由父项执行。
此外,在创建其中的小部件在执行某些操作行为时会暂时升至视图平面之上的动画时,高度也很实用。
说白了就是增加了立体感。
注意当需要添加动画的时候再去设置translationZ()方法,还有,当设置了elevation后无效果时,除了兼容性所致那就是背景颜色不对(必须有背景才会有阴影),换个背景色试试。
总的Z值是elevation+translationZ。
前面说到了如果你没有定义背景,那么阴影不会有效果的,倘若你指定了背景,那么他的Outline(轮廓)会被背景自动定义,也就是说,此时的背景、轮廓和阴影都是一样的形状,但是如果这时你又特意指定了一个Outline(轮廓),那么现在阴影会和新轮廓一致,也就是说阴影始终和轮廓的形状是一致的,并且会依附于轮廓。
指定轮廓的代码:
初始轮廓效果:
更换轮廓后的效果:
官网原话:视图的默认轮廓提供程序将从视图背景取得轮廓。 如果要防止视图投射阴影,请将其轮廓提供程序设置为 null。
关于动画,简单认识,后面会说到:
所谓的“揭露动画”皆是View为了展示显示和隐藏时的连续性的动画。
裁剪代码:
当点击的时候,裁剪效果对比: