LayerDrawable

介绍

    public class LayerDrawable  extends Drawable implements Drawable.Callback

android.graphics.drawable.LayerDrawable

父类

| android.graphics.drawable.Drawable |

其他Draw文章参考:
Android中Drawable整体介绍

前言

管理一系列其他Drawable的Drawable。 这些按照数组顺序绘制,所以具有最大索引的元素将被绘制在最上面。最大索引就是最后一个item

它可以使用元素在XML文件中定义。 图层中的每个Drawable都是在一个嵌套的中定义的。

下面的item会覆盖上面的item。抽象来说,就是第一个item放好了之后,就相当于这个layterDrawable基础有了,别的就是往上叠,能看见啥不能看见啥可以按照搭积木一样想象来看。

XML的使用

LayerDrawable 是管理其他可绘制对象阵列的可绘制对象。列表中的每个可绘制对象按照列表的顺序绘制,列表中的最后一个可绘制对象绘于顶部。

每个可绘制对象由单一 元素内的 元素表示。



    

(1)layer-list 标签
里面那些英文没翻译的,是因为自己不知道有啥用。


必备。这必须是根元素。包含一个或多个  元素。
属性:

xmlns:android
字符串。必备。定义 XML 命名空间,其必须是 "http://schemas.android.com/apk/res/android"。

android:paddingBottom   
Explicit bottom padding. 

android:paddingEnd
Explicit end padding. 

android:paddingLeft 
Explicit left padding. 

android:paddingMode 
Indicates how layer padding should affect the bounds of subsequent layers. 

android:paddingRight    
Explicit right padding. 

android:paddingStart    
Explicit start padding. 

android:paddingTop  
Explicit top padding. 

(2)item


定义要放在图层可绘制对象中由其属性定义的位置的可绘制对象。必须是  元素的子项。接受子  元素。
属性:

android:drawable
可绘制对象资源。必备。引用可绘制对象资源。

android:id
资源 ID。此可绘制对象的唯一资源 ID。要为此项新建资源 ID,请使用以下形式:"@+id/name"。加号表示应创建为新 ID。
可以使用此 ID 检索和修改具有 View.findViewById() 或 Activity.findViewById() 的可绘制对象。

android:top
整型。顶部偏移(像素)。

android:right
整型。右边偏移(像素)。

android:bottom
整型。底部偏移(像素)。

android:left
整型。左边偏移(像素)。Left inset to apply to the layer.

上面的属性翻译成偏移,不如理解为:LayerDrawable在绘制这一层item的时候,给当前item留相对于上一层的空间

android:height  
Height of the layer. 

android:end
最后插入    

android:gravity 
Gravity used to align the layer within its container. 

android:start   
Start inset to apply to the layer. 

android:top 
Top inset to apply to the layer. 

android:width   
Width of the layer. 



(3)
默认情况下,所有可绘制项都会缩放以适应包含视图的大小。因此,将图像放在图层列表中的不同位置可能会增大视图的大小,并且有些图像会相应地缩放。为避免缩放列表中的项目,请在 元素内使用 元素指定可绘制对象,


并且对某些不缩放的项目(例如 "center")定义重力。例如,以下 定义缩放以适应其容器视图的项目:


  

示例:

定义文件一:



    
        
    
    
        
    
    
        
    

结果:


image.png

定义文件二:




    
    
    
    
    

    

结果


LayerDrawable_第1张图片
image.png

定义文件三:



    
        
    
    
        
    
    
        
    

结果:
因为定义了android:top之类的,那么默认的图片就会相应的缩放。


image.png

你可能感兴趣的:(LayerDrawable)