layer-list實現只有左、右和下邊框的圓角矩形


項目中需要實現如下效果的布局

也就是一個左右下角帶圓角,上方不帶圓角的白色背景矩形,而且只有左、右和下邊框,顏色為淺灰色。

當然,切一個.9圖片作為背景也能實現,但是能用代碼實現的還是盡量用代碼實現,因為圖片過多一個消耗內存,另一個還增加apk大小。

這種效果可以通過layer-lsit來實現,在drawable文件夾下面建一個xml文件,具體代碼如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">   
 3     <!-- 
 4         layer-list中的item是按照順序從下往上疊加的,即先定義的item在下面,后面的依次往上面疊放
 5     -->  
 6     <!-- 這里定義一個下面帶圓角,上面不帶圓角的矩形,邊框顏色為@color/line_color -->
 7     <item>   
 8          <shape>   
 9                <corners android:bottomLeftRadius="5dp" 
10                    android:bottomRightRadius="5dp" />
11                <stroke android:width="1px" android:color="@color/line_color" />
12          </shape>       
13     </item>  
14     <!-- 
15         這里定義一個下面帶圓角,上面不帶圓角的矩形,背景為白色
16         這里設置了android:right="1px" android:left="1px" android:bottom="1px"屬性
17         android:right="1px"表示該item右邊往里面縮了1px
18         android:left="1px"表示該item左邊往里面縮了1px
19         android:bottom="1px"表示該item下面往里面縮了1px
20         這樣,左、右、下都比原來縮小了1px,這縮小出來的鄭剛是上面一個item的邊框的左、右、下邊框
21         而top沒有縮小,所以覆蓋了上面一個item的邊框的上邊框。
22         所以這個item疊加上面一個item之后的效果就是一個只含左、右、下灰色邊框,下面帶圓角,上面不帶圓角的白色背景矩形
23      -->
24     <item android:right="1px" android:left="1px" android:bottom="1px">   
25          <shape>   
26                <corners android:bottomLeftRadius="5dp" 
27                    android:bottomRightRadius="5dp" />
28                <solid android:color="@color/white" />
29          </shape>       
30     </item>  
31 </layer-list>

layer-lsit的用法注釋中也講的比較詳細。

然后在View中設置背景為改drawable即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM