我在旋转图像方面面临问题
以下代码正常
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 :(得分:0)
Matrix matrix = new Matrix();
canvas.translate(mX, mY);
canvas.drawBitmap(...);
canvas.translate(-mX, -mY);
答案 1 :(得分:0)
首先尝试旋转然后平移它,因为当你翻译它时,中心不再是中间,所以你用错误的轴坐标旋转它。
答案 2 :(得分:0)
旋转时默认情况下的轴心点是图像的左上角,这就是视图偏离视野的原因。您需要添加逻辑以使轴心点成为图像的中心。不幸的是,几何不是我的强项,所以也许有些喜欢几何的人可以给你计算来实现这一点。