第6章 Android的Drawable

Drawable分类:
1、BitmapDrawable:
      通过XML来描述BitmapDrawable可以设置更多效果。
      属性有
    
    
    
    
  1. <?xml version = "1.0" encoding = "utf-8"?>
  2. <bitmap
  3. xmls:android="http://schemas.android.com/apk/res/android"
  4. android:src="@[package:]drawable/drawable_resource"
  5. android:antialias=["true"|"false"]//抗锯齿
  6. android:dither=["true"|"false"]//开启抖动效果
  7. android:filter=["true"|"false"]//过滤效果
  8. android:gravity
  9. android:tileMode /> //平铺模式
2、ShapeDrawable:
shape有rectangle(矩形)、oval(椭圆)、line(横线)、ring(圆环),line和ring必须指定<stroke>标签指定线的宽度和颜色信息。
属性:
    
    
    
    
  1. <?xml version = "1.0" encoding = "utf-8"?>
  2. <shape
  3. xmls:android="http://schemas.android.com/apk/res/android"
  4. android:shape=["rectangle"|"oval"|"line"|"ring"]>
  5. <corners/> //四个角的角度,只适应矩形shape
  6. <gradient/> //渐变效果
  7. <padding/> //包含这个drawable的view的空白
  8. <size/> //大小,width&height
  9. <solid/> //纯色填充
  10. <stroke/> //shape的描边
  11. </shape>
3、LayerDrawable:
  一种层次化的Drawable集合。将不同Drawable放置在不同的层上面从而达到一种叠加后效果。
    
    
    
    
  1. <?xml version = "1.0" encoding = "utf-8"?>
  2. <layer-list
  3. xmls:android="http://schemas.android.com/apk/res/android"
  4. <item
  5. android:drawable=""
  6. android:id=""
  7. android:top=""//drawable相对于view上下左右偏移量
  8. android:right=""
  9. android:bottom=""
  10. android:left=""/>
  11. </layer-list>
每个Item都表示一个Drawable。切下层的item会覆盖上面的item。
4、StateListDrawable
就是<selector>,Drawable集合,根据View的状态选择合适Drawable
5、LevelListDrawable
对应<level-list>标签,Drawable集合,集合中每个Drawable对应一level,可通过setLevel设置不同等级切换具体drawabel。每个drawable的
范围都是0-10000。
6、TransitionDrawable
<transition>标签,用户实现两个Drawable之间淡入淡出效果。
    
    
    
    
  1. TransitionDrawable drawable = (TransitionDrawable) mBtn.getBackground();
  2. drawable.startTransition(5000);
7、InsetDrawable
<inset>标签,将其他Drawable内嵌到自己当中,并可在四轴留有边距。
8、ScaleDrawable
对应于<scale>标签,可根据等级指定Drawable缩放到一定比例。等级不可以为0,否则不可见。
    
    
    
    
  1. ScaleDrawable drawable = (ScaleDrawable) mBtn.getBackground();
  2. drawable.setLevel(8000);
scaleDrawable级别越大就越没缩放效果,1~10000范围。必须设置setLevel否则为0。
scaleDrawable的XML定义缩放比例越大,内部Drawable就越小
9、ClipDrawabel
<clip>标签,根据自己当前的level来裁剪另外一个Drawable。可以设置等级来裁剪区域大小。





来自为知笔记(Wiz)


你可能感兴趣的:(第6章 Android的Drawable)