Drawable子类之——LayerDrawable (图层叠加)

本文出自 “阿敏其人” 博客,转载或引用请注明出处。

LayerDrawable对应的XML的根元素是,,它使一种层次化显示的Drawable集合。也就说,可以通过显示由多个Drawable的叠加,旋转,位移等组合显示出与单一Drawable不同的效果。在本文中我们会附上相关的效果。

一、语法

根据官网显示它的语法如下:



    

二、子节点

子节点有这么几个:drawable、id、(四个方向)top、right、buttom和left。
(关于这四个方向可以大概理解为padding,单位为px)

  • android:drawable
    对应的图片资源

  • android:id
    id资源名 (少用)

  • android:top 可以理解为padding top,单位是px

  • android:right 可以理解为padding right,单位是px

  • android:bottom 可以理解为padding buttom,单位是px

  • android:left 可以理解为padding left,单位是px

三、特点

对于LayerDrawable有这么几个特点
1、每一个item表示一个Drawable
2、下面的Drawale覆盖上面的Drawable
3、item里面常见放的是bitmap,当然也可以是shape,不管是什么肯定是Drawable。

四、Demo示例

简单的叠加






    
        
            
            

        
    

    
        
            
            
        
    



Drawable子类之——LayerDrawable (图层叠加)_第1张图片
简单的叠加.png

旋转






    
        
        
            
        
    
    
    
        
            
        
    
    
    
        
            
        
    


Drawable子类之——LayerDrawable (图层叠加)_第2张图片
叠加旋转.png

阴影




    
    
    
        

            
            
            
            
        
    

    
    
    
        

            

            
        
    



Drawable子类之——LayerDrawable (图层叠加)_第3张图片
阴影.png

至此效果展示完成。
在这里提一点,我们一般做评价的星星也需要利用LayerDrawable,这里就不附上源码了,这个网上游很多参考。

补充

补充1、画一个只有底边的矩形(其实说画不严格,应该是叠加组合)

  • 只有底边


    
        
            
            
        
    
    
        
            
        
    

.
.

  • 如果想要保留底边和右边,只需要多加一行代码

            
            
            
        

.
.
实践




    


    


Drawable子类之——LayerDrawable (图层叠加)_第4张图片
image.png

.
.
原理,以底边为例

Drawable子类之——LayerDrawable (图层叠加)_第5张图片
image.png

了解更多的Drawable分类 Drawable图像资源抽象类
本篇完。


相关参考:

《android开发艺术探索》
用layer-list实现图片旋转叠加、错位叠加、阴影、按钮指示灯

你可能感兴趣的:(Drawable子类之——LayerDrawable (图层叠加))