好吧,也许我在这里遗漏了一些东西,但我被困了几个小时。我制作了一个应用程序,用户在图片上绘制尺寸线。现在我还想绘制一些选择点,以显示该线已被选中。这些点是一个特定的位图,必须在行尾(箭头之后)并根据箭头进行旋转。我创建了一个扩展 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();
然后我发现在我想要的确切位置绘制位图太难了(因为我在旋转的画布上绘制,然后我旋转回来)。我尝试了一些欧几里得旋转变换,但我没有运气。
有没有办法应用矩阵旋转并给出我需要绘制位图的点?先感谢您!