Android中的13种Drawable小结(part3):重点属性剖析

分类:知识百科 日期: 点击:0

Android中有13种Drawable,它们分别是LayerDrawable、BitmapDrawable、ShapeDrawable、StateListDrawable、InsetDrawable、ClipDrawable、ScaleDrawable、ColorDrawable、LevelListDrawable、TransitionDrawable、NinePatchDrawable、GradientDrawable和RippleDrawable。这13种Drawable都有自己的特点和用途,下面将对它们的重点属性进行剖析。

LayerDrawable

LayerDrawable可以用来将多个Drawable对象组合成一个Drawable对象,比如可以将图片和圆角边框组合成一个Drawable对象,这样就可以实现圆角图片的效果。使用LayerDrawable的方法如下:

Drawable[] layers = new Drawable[2];
layers[0] = new BitmapDrawable(bitmap);
layers[1] = new ColorDrawable(Color.RED);
LayerDrawable layerDrawable = new LayerDrawable(layers);

BitmapDrawable

BitmapDrawable用来将位图转换为Drawable对象,它可以实现图片的缩放、旋转、锚点等功能。使用BitmapDrawable的方法如下:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);

ShapeDrawable

ShapeDrawable可以用来绘制几何图形,比如矩形、圆形、椭圆等,它可以设置绘制的颜色、边框、边框颜色等属性。使用ShapeDrawable的方法如下:

ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
shapeDrawable.getPaint().setColor(Color.RED);
shapeDrawable.setBounds(0, 0, 500, 500);

StateListDrawable

StateListDrawable可以用来根据不同的状态显示不同的Drawable,比如按钮可以根据按下、抬起等不同状态显示不同的图片。使用StateListDrawable的方法如下:

StateListDrawable stateListDrawable = new StateListDrawable();
stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, new BitmapDrawable(bitmap1));
stateListDrawable.addState(new int[]{}, new BitmapDrawable(bitmap2));

InsetDrawable

InsetDrawable可以用来将一个Drawable对象插入另一个Drawable对象中,比如可以将图片插入圆角边框中实现圆角图片的效果。使用InsetDrawable的方法如下:

InsetDrawable insetDrawable = new InsetDrawable(new BitmapDrawable(bitmap), 10);

ClipDrawable

ClipDrawable可以用来裁剪Drawable对象,比如可以将图片裁剪成圆形,实现圆形图片的效果。使用ClipDrawable的方法如下:

ClipDrawable clipDrawable = new ClipDrawable(new BitmapDrawable(bitmap), Gravity.LEFT, ClipDrawable.HORIZONTAL);

ScaleDrawable

ScaleDrawable可以用来缩放Drawable对象,比如可以将图片缩小2倍,实现图片缩小的效果。使用ScaleDrawable的方法如下:

ScaleDrawable scaleDrawable = new ScaleDrawable(new BitmapDrawable(bitmap), Gravity.CENTER, 0.5f, 0.5f);

ColorDrawable

ColorDrawable可以用来绘制颜色,比如可以绘制红色,实现红色背景的效果。使用ColorDrawable的方法如下:

ColorDrawable colorDrawable = new ColorDrawable(Color.RED);

LevelListDrawable

LevelListDrawable可以用来根据不同的等级显示不同的Drawable,比如可以根据电量的不同等级显示不同的图片。使用LevelListDrawable的方法如下:

LevelListDrawable levelListDrawable = new LevelListDrawable();
levelListDrawable.addLevel(0, 0, new BitmapDrawable(bitmap1));
levelListDrawable.addLevel(1, 1, new BitmapDrawable(bitmap2));

TransitionDrawable

TransitionDrawable可以用来实现渐变效果,比如可以实现从一张图片到另一张图片的渐变效果。使用TransitionDrawable的方法如下:

Drawable[] layers = new Drawable[2];
layers[0] = new BitmapDrawable(bitmap1);
layers[1] = new BitmapDrawable(bitmap2);
TransitionDrawable transitionDrawable = new TransitionDrawable(layers);
transitionDrawable.startTransition(500);

NinePatchDrawable

NinePatchDrawable可以用来将9.png图片转换为Drawable对

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。