Android(Lollipop/5.0) Material Design(四) 定義陰影和裁剪View

 

Material設計為UI元素引入瞭一個depth值,depth幫助用戶瞭解每個元素相對重要性,重點關註手頭的任務

每個View的elevation值,相當於z屬性,它決定瞭陰影的大小:z越大,陰影越大。

Views僅僅在z=0的平面時才會投影;它們不會投影在放置在它們下面和上面的的其他Views上。

使用較高z值的Views會阻隔使用較低z值的Views。

然而,一個View的Z值不會影響View的大小。

elevation有利於創建 在組件需要臨時上升到View的平面之上做一些操作時 的動畫。

 

 

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的背影圖片的邊界確定瞭陰影的默認圖形。輪廓代表一個圖形對象的外部形狀和定義的用於觸摸反饋的波紋區域。
參考:


背景圖片可以定義成一個圓角的矩形



    
    

因為背景圖片定義瞭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()。
裁剪是一個奢侈的操作,不要使用動態圖形來裁剪。為瞭實現這種效果,可以使用動畫來展現。

 

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *