我尝试使用
学习在画布上绘制位图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吗?或者我应该如何经常调整我的图像大小?
答案 0 :(得分:10)
使用绘制位图的矩阵版本。重要的是按正确的顺序进行。从身份矩阵开始。然后使用postScale按照您想要的任何因子进行缩放。这将使它成长但不改变起源。然后使用postTranslate进行翻译,后者将向左/向右/向上/向下移动。然后将位图绘制到画布上,将矩阵传递给它。在复制之前,它将按矩阵缩放和移动位图。