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

浙公网安备 33010602011771号