我使用此代码垂直绘制文本。

RectF rectF2 = new RectF();
matrix.mapRect(rectF2, bounds);
canvas.save();
canvas.rotate(90, rectF2.right, rectF2.top);
canvas.drawText(text, rectF2.left, rectF2.bottom, mTextPaint);
canvas.restore();


这很好用,但是我也想更改坐标。因为稍后我点击对象并进行拖放。

现在的问题是,正如您在下图中所看到的,坐标被绘制为矩形。因此,当我点击该矩形区域时,只能在画布上的文本周围移动。

所以我想在旋转画布时也旋转原始坐标。我尝试了matrix.setRotate但无法实现我想要的。

android -  Canvas 旋转后更改RectF的坐标-LMLPHP

最佳答案

好吧,如果要在该视图中拖动对象,则可能需要创建ViewGroup并将对象放置为View。因为所有对象都绘制在画布上,所以您无法在其上点击和拖动。

您可以旋转,平移和调整视图大小,还可以拦截视图上的触摸事件以执行拖动

您的解决方案只能像带有文本的图像一样工作,如果我对您的理解是正确的,那么您将无法使用他们想要的东西

10-07 19:45