关于View,Canvas,Drawable,Bitmap

试图在View上显示一个png资源文件过程被这四个对象困扰了,仔细分析了下之间的关系。

从显示的角度来说View上显示过程就是View的draw方法被调用的过程,这个方法唯一的入参是一个Canvas对象,这个对象负责了在当前的画面面板上放置画布元素并拍照的工作,其中调用的方法是drawBitmap,drawBitmap最重要的入参是一个Bitmap对象,理解为画布的话那上面所做的画的来源便是Drawable,实际上Drawable有个直接子类便是BitmapDrawable,该子类可以直接通过getBitmap方法获得到画完的一个画布。
分析下代码:
[cc lang='java' ]

#获得要画的内容
Drawable draw = this.getContext().getResources().getDrawable(R.drawable.testpng);
#把画的内容画到画布上
Bitmap bitmap = draw.getBitmap();
#通过摄像头把画布的内容拍下来,这个摄像头可以是View的,也可以是其它
canvas.drawBitmap(bitmap, posX, posY, new Paint());

[/cc]

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据