我有一个从位图生成的多边形。我试图将位图绘制到多边形上,但无法弄清楚它为什么不起作用。
没有旋转时有效。但是应用旋转并且它会偏离中心。
绘制位图的代码
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);
答案 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);