6

我正在尝试使用以下方法学习在画布上绘制位图

drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint);

因为我需要我的一个 png 来增加几乎每一帧的大小,我设法做到了

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

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

矩阵.setTranslate(x,y); 矩阵.postTranslate(x,y);

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

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

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

4

1 回答 1

10

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

于 2013-04-12T18:53:03.407 回答