安卓中的Drawable资源文件

layer-list

layer-list 是将一系列图片叠加放置来形成所需要的图片,格式形如


    
    

叠放顺序是顺序叠加,即第一个item在最下方,最后一个item在最上方,
item可以设置的属性有

 

操作这些属性可以实现图片的错位叠加.
在实际应用中,还遇到的就是复杂边框的实现,如虚线+复制背景边框,因为虚线边框在代码中易实现,但不易做成图片,同时要实现图片的层次叠加效果,就可以写成如下形式


   
        
            
            
            
        
    
    
        
            
            
            
        
    

为下部的图片设置padding,就可以使上面显示的图片留有一定的内边距
如果下部的图片是引用的,则可以把上面的图片设置为Inset Drawable 可以达到同样的效果

level-list

level-list 可以很方便地根据单一参数的变化来显示不同的图片,系统控件中如电量,网络信号强度都是用此方式来实现的,如下

 
  
  
  
  
 

view_wifi.setLevel(getWifiLevel()); 这样就省去了多分支判断的过程

transtition

Transition 可以使两张图片切换时有淡入淡出的动画效果


    
    

layout 文件中使用

代码设置点击事件

  if (ibTrans.getDrawable() instanceof TransitionDrawable){
                    TransitionDrawable drawable = (TransitionDrawable) ibTrans.getDrawable();
                   // drawable.startTransition(500);// 最终不切换图片
                    drawable.reverseTransition(500);
  }

insert

把图片按一定内边距嵌入到控件中去

clip

progressbar 中常用的,按level 裁剪drawable 以达到显示进度的效果,注意drawable不能是.9图


 
private static final int LEVEL_MAX = 10000;
mAnimator = ObjectAnimator.ofInt(mClipDrawable, "level", target > LEVEL_MAX ? LEVEL_MAX : target);
  mAnimator.start();
IT文库 » 安卓中的Drawable资源文件
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址