Creating Apps With Material Design —— Defining Shadows and Clipping Views

View轉載請註明 http://blog.csdn.net/eclipsexys 翻譯自Developer Android,時間倉促,有翻譯問題請留言指出,謝謝
html

定義陰影和裁減

材料設計引入了深度的UI元素。深度幫助用戶瞭解每個元素的相對重要性。以及集中注意力於手頭的任務。 android


一個視圖。經過Z屬性表示的Elevation,決定了它的影子的大小:具備較高的Z值的View蒙上更大的陰影。瀏覽次數僅僅投射陰影在Z=0平面上;他們不投在如下放置它們和上面的Z =0平面的其它意見的陰影。 

具備較高的Z值的意見閉塞的View與較低的Z值。然而,鑑於Z值不會影響視圖的大小。 

Elevation也很是有建立動畫。當中的小部件臨時超越視圖平面運行某些操做的時候。eclipse


指定Elevation到你的Views


一個視圖中的Z值有兩個組成部分,高度和翻譯。仰角是靜態份量和翻譯是用於動畫:
ide

Z = elevation + translationZ
佈局


設置在佈局定義視圖的高度,使用android:elevation屬性。設置在活動的代碼視圖的高度,使用View.setElevation()方法。 

要設置視圖的轉換。使用View.setTranslationZ()方法。 

新ViewPropertyAnimator.z()和ViewPropertyAnimator.translationZ()方法,使您可以輕鬆地製做動畫的View elevation。欲瞭解不少其它信息,請參閱ViewPropertyAnimator和物業動畫開發者指南的API參考。
動畫

 

您也可以使用StateListAnimator以聲明方式指定這些動畫。
spa

這是狀況下,狀態變化觸發動畫,當用戶按下一個button,像特別實用。欲瞭解不少其它信息,請參見動畫視圖狀態更改。.net


Z值與X和Y值具備一樣的測量單位
翻譯



本身定義視圖的陰影和Outlines


一個視圖的背景繪製的邊界決定了其影子的默認形狀。Outlines表示圖形對象的外部形狀,並限定了波紋區域的觸摸反饋。設計



考慮這個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: 


    擴展ViewOutlineProvider類。 
    覆蓋getOutline()方法。 
    分配新大綱提供給您的視圖與View.setOutlineProvider()方法。

 

您可以建立橢圓形和矩形輪廓使用大綱類中的方法圓角。默認綱要提供者的意見獲得從視圖的背景輪廓。爲了防止鑑於蒙上陰影,設置其輪廓提供商爲null。



裁減視圖

裁剪View,您可以輕鬆地更改視圖的形狀。你可以改變視圖一致性與其它設計元素或改變的圖的形狀,以響應用戶輸入。您可以剪輯,以便使用View.setClipToOutline()方法仍是Android的輪廓區域:clipToOutline屬性。

僅僅有矩形,圓形和圓角矩形輪廓支撐剪裁,如由Outline.canClip()方法來肯定。 夾視圖到繪製的形狀。設置繪製的視圖的背景(如上圖所看到的),並調用View.setClipToOutline()方法。 剪裁View是昂貴的操做,因此不要動畫。你用它來夾視圖的形狀。爲了達到這個效果,請使用顯示效果動畫。

相關文章
相關標籤/搜索