本文介紹了Android Material Design 陰影實現(xiàn)示例,分享給大家,具體如下:
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的昂仁網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
讓 View 產(chǎn)生陰影有以下 4 種方式:
0.Z軸的概念
Android 在 5.0 及以后采用了 Material Design 設(shè)計語言,引入了 Z 軸的概念,也就是垂直于屏幕的軸,Z 軸會讓 View 產(chǎn)生陰影的效果:
想象有一束斜光投向屏幕,Z 軸值越大,離光就越近,陰影的范圍就越大;Z 軸值越小,離光就越遠(yuǎn),陰影的范圍就越小。而:
Z=elevation+ translationZ
elevation 一般是寫在 xml 文件中做靜態(tài)配置,translateZ 是用來控制動畫效果。
是 Z 軸讓 View 產(chǎn)生了陰影,我們要控制陰影就是控制 Z 軸啦:
1.控制 elevation
控制 elevation,需要先設(shè)置 View 的 BackGround,再設(shè)置 elevation。
首先配置一個 drawable:
再設(shè)置 background 和 elevation:
2.使用 OutlineProvider
第 1 種方式可以滿足大多數(shù)情況,但如果 View 的 background 是 color、圖片,甚至是自定義 View 時就無法產(chǎn)生陰影效果了,這是我們需要通過代碼設(shè)置陰影。官方稱之為 outline。
view.setOutlineProvider(new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { outline.setRect(0,0,view.getWidth(),view.getHeight()); } });
outline 就是繪制的外部陰影樣式,樣式可以是任意的:矩形、園、圓角矩形、甚至是路徑:
outline的方法
3.使用 9 圖
前面兩種方法涵蓋了大多數(shù)情況,實在還有意外:比如兼容 5.0 之前的 UI 樣式、UI設(shè)計的陰影居然是彩色的!那就使用最后的絕招了: 9 圖。不過使用 9 圖的靈活性實在是差,高度不同就要不同的切圖,這里有一個網(wǎng)站可以自己隨意切陰影圖:http://inloop.github.io/shadow4android/
4.使用官方 MD 組件
其實官方組件的 ActionBar、CardView,F(xiàn)loatingActionButton就自帶陰影,應(yīng)盡量使用他們,這里就不展開講了。
5.translateZ 動畫
介紹 Z 軸時,說過 Z=elevation+ translationZ。elevation 是靜態(tài)的,而 translateZ 是動態(tài)的。如我們點擊按鈕時希望它有一個彈起的效果,像這樣:
彈起
其實是給 view 配置狀態(tài)動畫控制 translationZ:
android:stateListAnimator="@drawable/selector_elevation"
動畫 xml 如下
<?xml version="1.0" encoding="utf-8"?>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。