如何围绕中心点旋转图像?这会旋转它但也移动它:
Matrix mat = new Matrix();
mat.postRotate(45);
Bitmap bMapRotate = Bitmap.createBitmap(dialBM, 0, 0, dialBM.getWidth(),dialBM.getHeight(), mat, true);
dial.setImageBitmap(bMapRotate);
我已经检查了这个网站上的其他例子,但是他们要么无法工作,要么使用画布,我不想使用画布。
答案 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)。将三个矩阵相乘,然后乘以结果。