【发布时间】:2012-05-26 10:54:07
【问题描述】:
好吧,也许我在这里遗漏了一些东西,但我被困了几个小时。我制作了一个应用程序,用户在图片上绘制尺寸线。现在我还想绘制一些选择点,以显示该线已被选中。这些点是一个特定的位图,必须在行的末端(箭头之后)并根据箭头进行旋转。我创建了一个扩展 View 的类 DrawSelectionPoint,我可以用这样的方式旋转位图:
selectionPoint = BitmapFactory.decodeResource(context.getResources(),
R.drawable.selectionpoint);
Matrix matrix = new Matrix();
matrix.postRotate((float)Math.toDegrees(angle));
canvas.drawBitmap(selectionPoint, matrix, null);
(其中角度是线的角度)这样我的位图会按照我想要的方式旋转,但它会绘制在点 0,0(屏幕的左上角)。
如果我使用类似的东西
canvas.save();
canvas.rotate();
canvas.drawBitmap(selectionPoint, x, y, null);
canvas.restore();
然后我发现在我想要的确切位置绘制位图太难了(因为我在旋转的画布上绘制,然后我将其旋转回来)。我尝试了一些欧几里得旋转变换,但没有运气。
有什么方法可以应用矩阵旋转并给出我需要绘制位图的点吗?提前谢谢!
【问题讨论】:
标签: android canvas matrix bitmap rotation