现在的位置: 首页 > 综合 > 正文

Android图形图画学习(2)

2017年12月17日 ⁄ 综合 ⁄ 共 1002字 ⁄ 字号 评论关闭

这里对"画图"作一个总结:

1.画图操作需要四个组件的存在——一个承载像素的Bitmap(位图),一个Canvas工具类,一个原始图形(例如Rect,Path,text,Bitmap)和一支画笔(Paint)。

2.所有画的动作都在Canvas中定义,查看Canvas的构造函数有两个:Canvas()和Canvas(Bitmap
bm)可知,使用new Canvas()在一个空白画布上作画,使用new Canvas(bm)在一个已有的Bitmap对象上作画。

3.通过new Canvas(bm)可知,在已有图形上作画,Bitmap是不可或缺的中间对象。所有的Drawable资源(image.jpg等)都需要先转化为位图,然后可实现在其上作画。

4.我们分别对几个画图常见类作个说明:

Canvas:画布。可以是空白画布,也可以以一张位图作为画布。它是一个工具类,定义了所有画的动作。

Bitmap:位图。这是一个二进制比特流形式存在的图形,可以比作Buffer之类的东西。它是实际所见的图形在内存中的存在形式,它与像素,色彩等息息相关,通过它自身定义的函数,直接操作内存得到的,我们可以创建不同像素(即不同大小等)的位图。

Drawable:资源。我们可以把这个类比喻成我们实际所见到的图形对象,包括一些动画图形。

Drawable和Bitmap的相互转化是需要掌握的知识:

1.Bitmap转Drawable

通过Drawable的子类BitmapDrawable。

BitmapDrawable bd = new BitmapDrawable(Bitmap);

2.Drawable转Bitmap

BitmapDrawable bd = (BitmapDrawable)Drawable;

Bitmap bm = bd.getBitmap();

或从资源中获取Bitmap

Bitmap bm = BitmapFactory.decodeResource(res, id);


BitmapFactory中定义了从各种流,字节,资源以及文件中获取Bitmap位图的方法。Bitmap则提供了获取位图大小,即各种与像素相关的属性的get方法以及转换成不同属性的Bitmap的方法。

Bitmap与Drawable紧密联系,Bitmap是Drawable的二进制比特流,Drawable是Bitmap的实际可见存在。二者都提供了从各种资源(流,文件等)中获取对象的方法。


抱歉!评论已关闭.