围绕中心旋转图像

时间:2011-12-01 20:26:38

标签: android

如何围绕中心点旋转图像?这会旋转它但也移动它:

 Matrix mat = new Matrix();
 mat.postRotate(45);
 Bitmap bMapRotate = Bitmap.createBitmap(dialBM, 0, 0, dialBM.getWidth(),dialBM.getHeight(), mat, true);
dial.setImageBitmap(bMapRotate);

我已经检查了这个网站上的其他例子,但是他们要么无法工作,要么使用画布,我不想使用画布。

2 个答案:

答案 0 :(得分:8)

postRotate的第二个和第三个参数是x和y轴心点。

 mat.postRotate(45, dialBM.getWidth()/2, dialBM.getHeight()/2);

答案 1 :(得分:0)

可能是因为矩阵绕(0,0)旋转,而不是位图的中间。你应该声明两个额外的矩阵 - 一个用于将位图的中心移动到(0,0)(移动-getWidth()/ 2,-getHeight(2)),另一个用于将位图的中心移回(0,0)。将三个矩阵相乘,然后乘以结果。