Elevation高度、shadows阴影、clipping裁剪、tint着色
Elevation
Android5.0加入了Z轴,这个Z轴的值就是View的高度Elevation
elevation的值较大的View会遮盖住较小的

code:
效果如下: 
当然任何控件都会有默认的elevation高度: 
Shadows阴影和Outline轮廓
轮廓outline代表图形对象的形状
轮廓outline决定阴影的形状
轮廓outline定义触摸反馈的波纹区域。
默认的轮廓为背景可绘制对象,即background
shadows阴影的大小是由elevation高度决定的,高度越大,阴影面积越大
自定义轮廓为圆角矩形:
在Java中设置轮廓:
阴影
阴影的设置也很简单,只要给一个elevation高度,view就拥有阴影了。 为什么是elevation决定阴影的面积呢? 如下:
我们将这个Fragment的高度设置为20dp:
100dp: 
这样就很清楚了,所谓的阴影,是因为我们从上方垂直观察直立的物体产生的。 就像我们从高空俯视大楼。
android:outlineProvider属性
这个属性顾名思义:outline 轮廓的提供者,他有以下几个属性:
none 没有轮廓,即没有阴影
background,由background提供轮廓,默认是这个选项,如果没有设置background,则不会产生阴影
bounds,paddedBounds 由View的默认矩形边界作为outline,在layout编辑预览中可以看到
bounds,和 paddedBounds的区别在于:

前者阴影会填充设置的padding 后者则不会 ps:这两个属性的区别折腾我老久了T-T
根据轮廓Clipping裁剪视图
裁剪操作非常耗时,不要加入动画
着色Tint
Material Design 着色是一个很有意思的接口: 使用着色很简单,使用tint指定着色的色彩,使用tintmode指定着色的模式:

最后更新于
这有帮助吗?