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

來源:互聯網
上載者:User

標籤:des   android   style   blog   http   io   ar   color   使用   

官網:https://developer.android.com/intl/zh-tw/training/material/shadows-clipping.html

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.