画布旋转后更改RectF的坐标

问题描述 投票:0回答:1

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

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,但是我可以实现我想要的。

enter image description here

android android-canvas
1个回答
0
投票

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

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

您的解决方案只能像带有文字的图像一样使用,如果我对您的理解正确,您将无法对其进行所需的处理

© www.soinside.com 2019 - 2024. All rights reserved.