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