位图不会在点上旋转

时间:2014-05-29 05:27:28

标签: android matrix bitmap

我有一个从位图生成的多边形。我试图将位图绘制到多边形上,但无法弄清楚它为什么不起作用。

没有旋转时有效。但是应用旋转并且它会偏离中心。

Rotation problem

绘制位图的代码

mMatrix.setScale(this.mPolygon.getScaleX(), this.mPolygon.getScaleY());
//Could be wrong, maybe it's the topLeft. it needs.
mMatrix.setTranslate(
         this.getDimensions().centerX() - (this.getDimensions().width() / 2f),
         this.getDimensions().centerY() - (this.getDimensions().height() / 2f)
);

mMatrix.postRotate(this.getRotation(), this.getDimensions().centerX(), this.getDimensions().centerY());
canvas.drawBitmap(this.mBitmap, mMatrix, null);

1 个答案:

答案 0 :(得分:0)

对于有同样问题的人来说,这是因为位图与多边形的尺寸不同。这是有效的代码。

mMatrix.reset();
mMatrix.setTranslate(
     this.getDimensions().centerX() - (this.mBitmap.getWidth() / 2),
     this.getDimensions().centerY() - (this.mBitmap.getHeight() / 2));
mMatrix.postRotate (getRotation(), this.getDimensions().centerX(), this.getDimensions().centerY());
mMatrix.postScale(this.mPolygon.getScaleX(), this.mPolygon.getScaleY());
canvas.drawBitmap(this.mBitmap, mMatrix, null);