Android:使用矩阵绘制位图

时间:2013-04-12 18:49:09

标签: android matrix bitmap android-canvas

我尝试使用

学习在画布上绘制位图
drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint);

因为我需要我的一个png几乎每一帧增加它的大小,我设法用

Matrix matrix=new Matrix();
matrix.setScale(0.001f,0.001f);

这对我来说很好。但我遇到的问题是将图像放在正确的坐标中。我以为其中任何一个都会这样做

matrix.setTranslate(X,Y);    matrix.postTranslate(X,Y);

但这就是错误的地方,图像总是在0,0坐标上绘制。 在我需要缩放图像之前,我可以使用

canvas.drawBitmap(bmp,x,y,paint);

我可以指定要绘制的点。我可以使用矩阵版本的drawBitmap吗?或者我应该如何经常调整我的图像大小?

1 个答案:

答案 0 :(得分:10)

使用绘制位图的矩阵版本。重要的是按正确的顺序进行。从身份矩阵开始。然后使用postScale按照您想要的任何因子进行缩放。这将使它成长但不改变起源。然后使用postTranslate进行翻译,后者将向左/向右/向上/向下移动。然后将位图绘制到画布上,将矩阵传递给它。在复制之前,它将按矩阵缩放和移动位图。