2011-08-04 92 views
0

我在旋转图像问题在安卓

下面的代码面临problme旋转图像正常工作

Matrix matrix = new Matrix(); 
matrix.postRotate(DEGREE,mBitmap.getWidth()/2, mBitmap.getHeight()/2); 
Bitmap m = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(),mBitmap.getHeight(), matrix, true); 
canvas.drawBitmap(m, mX, mY, null); 

,但我不想再创建一个新的位图,并再次所以我用下面的代码

Matrix matrix = new Matrix(); 
matrix.postTranslate(mX, mY); 
matrix.postRotate(DEGREE,mBitmap.getWidth()/2, mBitmap.getHeight()/2); 
canvas.drawBitmap(mBitmap, matrix, null); 

在这种情况下,图像不在视图中。它不可见。

+0

当我删除行matrix.postTranslate(mX,mY)它显示在左上角的图像。但我想在给定的坐标上显示图像。 –

回答

0
Matrix matrix = new Matrix(); 
canvas.translate(mX, mY); 
canvas.drawBitmap(...); 
canvas.translate(-mX, -mY); 
+0

它不工作。 –

+0

啊,我正在考虑一个不同的班级。上面的代码是否工作? – Phil

+0

太棒了,它正在工作。谢谢。 –

0

试试先旋转它,然后翻译它,因为当你第一次翻译它的中心是不以任何更使你用错误的支点坐标旋转它的中间。

0

旋转时默认的轴心点是图像的左上角,这就是视图超出视野的原因。您需要添加逻辑以使枢轴点成为图像的中心。不幸的是,几何不是我的强项,所以也许有人喜欢几何可以给你计算,使之成为现实。