Material Design 学习——阴影、轮廓、裁剪、着色
1 阴影
Android5.0 上实现阴影很简单,只需两点
- Z 轴上的高度
- 背景/轮廓
效果图
2 Z 轴
2.1 Z 轴是 Andorid5.0 中新引入的一个概念
elevation
表示控件的高translationZ
表示控件在 Z 轴山的偏移量- 控件在 Z 轴上的实际高度是
elevation + translationZ
2.2 实例:
style:dp
android:elevation="50dp"
android:translationZ="20dp"
code:px
view.setElevation(50);
view.setTranslationZ(20);
3 轮廓
实例:为按钮设置一个圆形轮廓,代码实际上设置了一个圆角矩形的轮廓,不过把圆角的半径设置为了边长的一半,所以实际效果是个圆
imageView.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
int shapeSize = 120;//px
outline.setRoundRect(0, 0, shapeSize, shapeSize, shapeSize / 2);
}
});
效果图如下,仔细看可以发现,阴影已经变成圆形了,在计算阴影时,轮廓优先于背景
4 裁剪
可以将 View 按其轮廓裁剪,只需在设置轮廓后再添加一行代码
button.setClipToOutline(true);
效果图
5 着色
tint 是 Android5.0 中引入的一个新概念,用于将 View 着色,拿 ImageView 举例,分别为 src 与 background 着色:
style:
code:
imageView.setImageTintList(ColorStateList.valueOf(Color.RED));
imageView.setBackgroundTintList(ColorStateList.valueOf(Color.BLUE));
效果图