最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Android Material設計中陰影效果的實現(xiàn)方法

 更新時間:2016年04月07日 15:31:55   作者:匆忙擁擠repeat  
這篇文章主要介紹了Android Material設計中陰影效果的實現(xiàn)方法,包括自定義陰影的輪廓和裁剪等,需要的朋友可以參考下

View可以投下的陰影,一個View的elevation值決定了它的陰影的大小和繪制的順序??梢栽O置一個視圖的elevation,在布局中使用屬性:android:elevation

<TextView
  android:id="@+id/my_textview"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/next"
  android:background="@color/white"
  android:elevation="5dp" />

新的translationz屬性使您能夠創(chuàng)建一個反映了暫時的elevation變化的動畫。elevation的變化可在響應觸摸手勢時可能是有用的。
每個View的elevation值,相當于z屬性,它決定了陰影的大?。簔越大,陰影越大。
Views僅僅在z=0的平面上才會投影;它們不會投影在放置在它們下面和上面的的其他Views上。
使用較高z值的Views會阻隔使用較低z值的Views。
然而,一個View的Z值不會影響View的大小。
elevation有利于創(chuàng)建 在組件需要臨時上升到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是一個靜態(tài)的成分,translation使用了動畫:Z = elevation + translationZ

201647152939430.jpg (1126×486)

在layout中設置elevation,使用android:elevation屬性。在代碼中設置,使用View.setElevation()方法。
設置一個View的translation,使用View.setTranslationZ()方法。
ViewPropertyAnimator.z()和ViewPropertyAnimator.translationZ() 能使你更輕易的推動Views的elevation。
您還可以使用一個StateListAnimator指定這些動畫聲明的方式。在狀態(tài)改變觸發(fā)動畫的情況下,這是特別有用的,比如當用戶按下一個按鈕時。

Customize View Shadows and Outlines  自定義View的陰影和輪廓
View的背影圖片的邊界確定了陰影的默認圖形。輪廓代表一個圖形對象的外部形狀和定義的用于觸摸反饋的波紋區(qū)域。
參考:

 <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類的一些方法,創(chuàng)建圓角矩形和橢圓的輪廓。默認的outline provider 包含了View的背影輪廓。阻止一個View的投影,可以設置View的ouline provider 為null。

Clip Views  裁剪

剪裁視圖使您能夠輕松地更改視圖的形狀。你可以統(tǒng)一裁剪成使用了其他設計元素,或在響應用戶輸入時改變View的形狀??梢圆眉鬡iew的外部輪廓區(qū)域,使用View.setClipToOutline()或者android:clipToOutline屬性。只有矩形、圓形、圓角矩形支持輪廓的裁剪,由Outline.canClip()方法來確定。
當要裁剪成一個圖片的形狀時,需要設置該圖片為View的背景,并調用View.setClipToOutline()。
裁剪是一個奢侈的操作,不要使用動態(tài)圖形來裁剪。為了實現(xiàn)這種效果,可以使用動畫來展現(xiàn)。

相關文章

最新評論

公安县| 宁蒗| 西宁市| 清镇市| 巴塘县| 龙川县| 栖霞市| 衡阳县| 汪清县| 东明县| 金沙县| 丁青县| 时尚| 临沭县| 靖西县| 蒙城县| 通榆县| 民县| 高陵县| 夏津县| 遵化市| 绍兴县| 静海县| 全椒县| 枝江市| 曲周县| 那曲县| 夏邑县| 龙胜| 淳化县| 海盐县| 封丘县| 汾西县| 沁源县| 广安市| 瑞丽市| 永和县| 九江市| 万载县| 吉木萨尔县| 大同县|