在android中旋转图像的问题

时间:2011-08-04 15:53:58

标签: android

我在旋转图像方面面临问题

以下代码正常

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);

在这种情况下,图像会离开视图。它不可见。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

首先尝试旋转然后平移它,因为当你翻译它时,中心不再是中间,所以你用错误的轴坐标旋转它。

答案 2 :(得分:0)

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