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


Assign Elevation to Your Views 在Views中指定Elevation

Z值包含两个成分:elevation和translation。 elevation是一个静态的成分,translation使用了动画Z = elevation + translationZ


在layout中设置elevation,使用android:elevation属性。在代码中设置,使用View.setElevation()方法。

设置一个View的translation,使用View.setTranslationZ()方法。

ViewPropertyAnimator.z()和ViewPropertyAnimator.translationZ() 能使你更轻易的推动Views的elevation。

您还可以使用一个StateListAnimator指定这些动画声明的方式。在状态改变触发动画的情况下,这是特别有用的,比如当用户按下一个按钮时。

Customize View Shadows and Outlines 自定义View的阴影和轮廓

View的背影图片的边界确定了阴影的默认图形。轮廓代表一个图形对象的外部形状和定义的用于触摸反馈的波纹区域。
参考:
<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的默认阴影图形。 自定义轮廓在代码中: ·继承自ViewOutlineProvider ·重写getOutline() ·使用View.setOutlineProvider(),指派新的轮廓
使用Outline类的一些方法,创建圆角矩形和 椭圆的轮廓。默认的outline provider 包含了View的背影轮廓。阻止一个View的投影,可以设置View的ouline provider 为null。

Clip Views 裁剪


剪裁视图使您能够轻松地更改视图的形状。你可以统一裁剪成使用了其他设计元素,或在响应用户输入时改变View的形状。可以裁剪View的外部轮廓区域,使用View.setClipToOutline()或者android:clipToOutline属性。只有矩形、圆形、圆角矩形支持轮廓的裁剪,由Outline.canClip()方法来确定。 当要裁剪成一个图片的形状时,需要设置该图片为View的背景,并调用 View.setClipToOutline()。
裁剪是一个奢侈的操作,不要使用动态图形来裁剪。为了实现这种效果,可以使用动画来展现。




更多相关文章

  1. Android中EditText的使用总结
  2. Android(安卓)spinner 样式及其使用详解
  3. Android异步处理二:使用AsyncTask异步更新UI界面
  4. 最全的Android单元测试教程
  5. android使用单选并设置按钮提醒
  6. 应用界面主题Theme使用收集
  7. Android设置图片在TextView上、下、左、右
  8. Android下基于XML的Graphics shape使用方法
  9. Android(安卓)基础入门

随机推荐

  1. Android数据存储---数据备份(Data Backup)(
  2. Android(安卓)NDK开发:NDK概览
  3. 精通Android
  4. Android面经总结
  5. Android常用控件之悬浮窗
  6. Android(安卓)编辑框(EditText)属性学习
  7. Android(安卓)Studio 将引用第三方jar包,
  8. 第一个android应用程序
  9. [Android][获取Android设备唯一标识]
  10. vlc android 截图和录制视频(vlc0.9.9)