android 中layer-list的用法

1.可以将多个图片按照顺序层叠起来 

2.在drawable下建立一个xml文件 

 [xhtml:showcolumns] view plaincopyprint?

<? xml  version= "1.0"  encoding= "UTF-8" ?>    
  1.  <layer-list    
  2.    xmlns:android="http://schemas.android.com/apk/res/android">   
  3.     <!--图片1-->  
  4.      <item android:id="@+id/user_faceback_drawable"  
  5.            android:drawable="@drawable/faceback" />    
  6.     <!--图片2-->  
  7.      <item android:id="@+id/user_face_drawable"   
  8.            android:drawable="@drawable/h001"     
  9.            android:left="10.0dip"   
  10.            android:top="18.0dip"   
  11.            android:right="25.0dip"   
  12.            android:bottom="35.0dip" />    
  13.  </layer-list>   
  14. <!--2个图片的叠加-->  

 

3.效果图

           +                    =           


还可以通过layer-list多图层叠加效果实现圆角功能

在android的开发过程中,我们可能会做圆角的效果出来,如下图所示:

四个角都是圆角的效果。如果让UI设计人员直接出图,可能会更简单一些。但是我们使用android中layer-list多图层叠加效果同样可以实现。

我们把它拆分为三个部分,第一个部分是最顶端的那一行(我这里称为顶部),第二部分是中间部分(中间部分不需要圆角效果),第三部分是底部。

顶部的实现:

顶部是一个有灰色边框但无下边框,带圆角,白色背景的长方体。实现效果如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<? xml version = "1.0" encoding = "UTF-8" ?>
< layer-list xmlns:android = "http://schemas.android.com/apk/res/android"
     < item
         < shape
             < solid android:color = "#FFFFFF" /> 
             < corners android:topLeftRadius = "10dp" android:topRightRadius = "10dp" 
                 android:bottomRightRadius = "0.1dp" android:bottomLeftRadius = "0.1dp" /> 
             < stroke android:width = "1dp" android:color = "#ffa8abad" /> 
         </ shape
     </ item
      < item android:top = "1dp" android:left = "1dp" android:right = "1dp"
         < shape
             < solid android:color = "#FFFFFF" /> 
             < corners android:topLeftRadius = "10dp" android:topRightRadius = "10dp" 
                 android:bottomRightRadius = "0.1dp" android:bottomLeftRadius = "0.1dp" /> 
             < stroke android:width = "1dp" android:color = "#ffffffff" /> 
         </ shape
     </ item >
</ layer-list >

中间部分是一个不带圆角 白色背景 灰色边框 无下边框 长方体.实现效果如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<? xml version = "1.0" encoding = "UTF-8" ?> 
< layer-list xmlns:android = "http://schemas.android.com/apk/res/android"
   < item
         < shape
             < solid android:color = "#FFFFFF" /> 
             < stroke 
                 android:width = "1dp" 
                 android:color = "#ffa8abad" /> 
         </ shape
     </ item >
      < item 
         android:left = "1dp" 
         android:right = "1dp" 
         android:top = "1dp"
         < shape
             < solid android:color = "#FFFFFF" /> 
             < stroke 
                 android:width = "1dp" 
                 android:color = "#ffffffff" /> 
         </ shape
     </ item >
</ layer-list >

底部是一个具有底部圆角,白色背景,灰色边框的长方体,实现效果如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<? xml version = "1.0" encoding = "UTF-8" ?> 
< layer-list xmlns:android = "http://schemas.android.com/apk/res/android"
     < item
         < shape
             < solid android:color = "#FFFFFF" /> 
             < corners android:topLeftRadius = "0.1dp" android:topRightRadius = "0.1dp" 
                 android:bottomRightRadius = "10dp" android:bottomLeftRadius = "10dp" /> 
             < stroke android:width = "1dp" android:color = "#ffa8abad" /> 
         </ shape
     </ item
    < item android:top = "1dp" android:bottom = "1dp" android:left = "1dp" android:right = "1dp"
         < shape
             < solid android:color = "#FFFFFF" /> 
             < corners android:topLeftRadius = "0.1dp" android:topRightRadius = "0.1dp" 
                 android:bottomRightRadius = "10dp" android:bottomLeftRadius = "10dp" /> 
             < stroke android:width = "1dp" android:color = "#ffffffff" /> 
         </ shape
     </ item >
</ layer-list >

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值