Android使用shape繪制陰影圖層陰影效果示例
最近在項(xiàng)目中用到一個比較有意思的陰影特效
從上面的效果圖上可以發(fā)現(xiàn)在圖片的右、下有一個陰影的特效,通過這個陰影效果明顯會使得這個提示文本有一種立體的觀感。瞬間高大上有木有?
基于以上UI效果,有兩種最基本的實(shí)現(xiàn)方式:UI給出陰影底圖和程序猿自我實(shí)現(xiàn)兩種。
在這里UI設(shè)計(jì)師給出陰影底圖的方式我們就不做討論了,我們來看下程序猿自我實(shí)現(xiàn)的方式怎么做。
首先我們來分析一下上面UI效果,我們不難發(fā)現(xiàn)其實(shí)上圖所示的ui效果本質(zhì)上可以看成兩個圖層的疊加,那么有的小伙伴就要說了不就是兩個圖層的疊加嘛,用畫筆(paint)和畫布(cavns)來畫就好了。但就我個人而言我覺得用畫筆來畫這種方式有點(diǎn)麻煩了。我們可以想到的另一個神器shape,我們用兩個shape來疊加不就好了嗎?說干就干,直接上代碼:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 第一層 上部和左部偏移一定距離--> <item android:left="2.66dp" android:top="2.66dp"> <shape> <solid android:color="#f5f5f5" /> <!-- 描邊 --> <stroke android:width="1dp" android:color="#f5f5f5" /> </shape> </item> <!-- 第二層 下部和有部偏移一定距離--> <item android:bottom="2.66dp" android:right="2.66dp"> <shape> <solid android:color="#ffffff" /> <!-- 描邊 --> <stroke android:width="0.33dp" android:color="#dedede" /> </shape> </item> </layer-list>
是不是實(shí)現(xiàn)起來超簡單。也許有些初學(xué)者可能會有疑惑,你說解決了就解決了???好吧,別急。照顧初學(xué)者的感受,我這里給出它的詳細(xì)使用方法:
1、在res/drawable目錄下新建一個文件,這個文件內(nèi)容就是如上的代碼,文件名就隨你喜歡了,但我們最好還是按照命名規(guī)則來的好(姑且定義為tips_shadow_bg.xml)
2、在布局文件內(nèi)所需要使用該效果的控件內(nèi)設(shè)置background為這個drawable即可
如:
<textview android:id="@+id/textview1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="使用shape繪制陰影圖層陰影效果" android:background="@drawable/tips_shadow_bg"> </textview>
至此,大功告成!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)簡單的文件下載與上傳
今天小編就為大家分享一篇關(guān)于Android實(shí)現(xiàn)簡單的文件下載與上傳,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Android開發(fā)手冊Button按鈕實(shí)現(xiàn)點(diǎn)擊音效
這篇文章主要為大家介紹了Android開發(fā)手冊Button按鈕實(shí)現(xiàn)點(diǎn)擊音效示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Android 檢查更新、下載、安裝功能的實(shí)現(xiàn)
這篇文章主要介紹了Android 檢查更新、下載、安裝功能的實(shí)現(xiàn)的相關(guān)資料,這里附有實(shí)例代碼,具有一定的參考價值,需要的朋友可以參考下2017-01-01android通過代碼的形式來實(shí)現(xiàn)應(yīng)用程序的方法
因?yàn)閼?yīng)用程序的安裝與卸載模塊在android系統(tǒng)中已經(jīng)寫好了,所以我們只需要激活就行了2013-10-10Android嵌套滾動和協(xié)調(diào)滾動的多種實(shí)現(xiàn)方法
嵌套的滾動主要方式就是這些,這些簡單的效果我們用協(xié)調(diào)滾動,如?CoordinatorLayout?也能實(shí)現(xiàn)同樣的效果,這篇文章主要介紹了Android嵌套滾動和協(xié)調(diào)滾動的多種實(shí)現(xiàn)方法,需要的朋友可以參考下2022-06-06Android 文件存儲與SharedPreferences存儲方式詳解用法
SharedPreferences是安卓平臺上一個輕量級的存儲類,用來保存應(yīng)用的一些常用配置,比如Activity狀態(tài),Activity暫停時,將此activity的狀態(tài)保存到SharedPereferences中;當(dāng)Activity重載,系統(tǒng)回調(diào)方法onSaveInstanceState時,再從SharedPreferences中將值取出2021-10-10Android自定義ViewGroup實(shí)現(xiàn)流式布局
這篇文章主要為大家詳細(xì)介紹了Android自定義ViewGroup實(shí)現(xiàn)流式布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-09-09Flutter學(xué)習(xí)教程之Route跳轉(zhuǎn)以及數(shù)據(jù)傳遞
這篇文章主要給大家介紹了關(guān)于Flutter學(xué)習(xí)教程之Route跳轉(zhuǎn)以及數(shù)據(jù)傳遞的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08