Material Design系列
Android(Lollipop/5.0) Material Design(一) 简介
Android(Lollipop/5.0) Material Design(二) 入门指南
Android(Lollipop/5.0) Material Design(三) 使用Material主题
Android(Lollipop/5.0) Material Design(四) 创建列表和卡片
Android(Lollipop/5.0) Material Design(五) 定义阴影和裁剪View
Android(Lollipop/5.0) Material Design(六) 使用图片
Android(Lollipop/5.0) Material Design(七) 自定义动画
Android(Lollipop/5.0) Material Design(八) 保持兼容性
官网:https://developer.android.com/training/material/shadows-clipping.html
材料设计介绍了UI元素的evevation属性,帮助用户了解每个元素相对重要性
每个View的elevation值,相当于z属性,它决定了阴影的大小:z越大,阴影越大。
Views仅仅在z=0的平面上才会投影;它们不会投影在放置在它们下面和上面的的其他Views上。
使用较高z值的Views会阻隔使用较低z值的Views。
然而,一个View的Z值不会影响View的大小。
elevation有利于创建 在组件需要临时上升到View的平面之上做一些操作时 的动画。
更多关于elevation的介绍,详见http://www.google.com/design/spec/what-is-material/elevation-shadows.html
在layout中设置elevation,使用android:elevation属性。在代码中设置,使用View.setElevation()方法。
设置一个View的translation,使用View.setTranslationZ()方法。
ViewPropertyAnimator.z()和ViewPropertyAnimator.translationZ() 能使你更轻易的推动Views的elevation。
您还可以使用一个StateListAnimator指定这些动画声明的方式。在状态改变触发动画的情况下,这是特别有用的,比如当用户按下一个按钮时。
<TextView android:id="@+id/myview" ... android:elevation="2dp" android:background="@drawable/myrect" />背景图片可以定义成一个圆角的矩形
<!-- res/drawable/myrect.xml --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#42000000" /> <corners android:radius="5dp" /> </shape>因为背景图片定义了View的轮廓(outline),所以View会投放一个使用了圆角的阴影。提供一个自定义的轮廓重写View的默认阴影图形。