您好,登錄后才能下訂單哦!
小編給大家分享一下Android如何使用Shape制作單邊框圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
開發中遇到單/多邊框的UI,簡單的可以自己寫shape圖,復雜的一般都讓設計配合制作9patch圖了。
今天不說需要切圖的情況,只聊簡單的單/多邊框,主要是實現思路。
效果很簡單:
就以上圖為例介紹,只有上邊框,邊框紅色、寬1dp,其余為白色。
思路一
兩層畫布疊加:底層紅色;上層白色;
上層白色畫布下移1dp。
代碼實現:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--下層畫布,紅色--> <item> <shape> <solid android:color="#f10606" /> </shape> </item> <!--下層畫布,白色,向下移1dp--> <item android:top="1dp"> <shape> <solid android:color="#ffffff" /> </shape> </item> </layer-list>
其中 <item>
標簽的 left
、 top
、 right
、 bottom
屬性可以理解為 view
的 marginXX
,這樣接下來的思路二也就順理成章了。
思路二
margin有正值,也有負值,所以...
兩層畫布:底層全部白色;上層只有紅色邊框,邊框寬度1dp;
上層紅色邊框分別設置左、右、下margin為-1dp(這里只要負值大于邊框寬度即可,并且必須大于邊框寬度)
代碼實現:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--下層畫布,全白色--> <item> <shape> <solid android:color="#ffffff" /> </shape> </item> <!--上層畫布,紅色邊框,寬度1dp;左、右、下設置margin--> <item android:bottom="-1dp" android:left="-1dp" android:right="-1dp" android:top="0dp"> <shape> <stroke android:width="1dp" android:color="#f10606" /> </shape> </item> </layer-list>
單邊框就這樣了,同理,那二邊框、三邊框也就簡單了。
按需自取。
坑?
你以為到則里就結束了?圖樣圖森炮!
跑一下上邊思路二的代碼看看效果
神馬情況, stroke
里 width
的值和 item
里 left
等的值轉化為像素的比例還不一樣?并且不同手機分辨率效果也不同,分辨率越高越容易出現。
當然,思路二里把 item
里 left
等的負值絕對值設置比 width
大的多一些就闊以了;另外,思路一是沒這個問題的。
以上是“Android如何使用Shape制作單邊框圖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。