【发布时间】:2017-03-19 21:49:08
【问题描述】:
我在屏幕上绘制了一个虚拟标尺。当触摸事件发生在生长的矩形内时,我希望能够像上面的蓝线一样绘制一条直线。但由于触摸不能 100% 笔直,因此运动可能会像红线一样。这就是为什么我设置一个矩形来监听所有附近的触摸事件,然后画一条蓝线。
我现在有
mRulerRect.set(mRulerCenter.x - mRulerBitmap.getWidth() / 2,
mRulerCenter.y - mRulerBitmap.getHeight()),
mRulerCenter.x + mRulerBitmap.getWidth() / 2,
mRulerCenter.y);
mPath.addRect(mRulerRect, Path.Direction.CCW);
mRulerMatrix.setRotate(mRulerAngle, mRulerCenter.x, mRulerCenter.y);
mPath.transform(mRulerMatrix);
mRegions.setPath(mPath, new Region(mRulerRect));
然后我检查触摸是否发生在mRegions.contains(x,y) 的棕色矩形内。到目前为止,它非常适合触摸检测,但我现在遇到的问题是如何画一条直线。我尝试修复 X 点然后计算 Y。当标尺水平时它工作正常,然后从水平转向垂直时开始表现得很奇怪。我不知道如何做到这一点。请帮忙!谢谢。
【问题讨论】:
-
我不确定我是否理解这个问题,你得到了在那个棕色矩形内的触摸坐标,然后你想画一条从那里经过并且平行于标尺的线..?
-
@lelloman 是的!这是正确的,但是由于移动事件可能像红线一样发生,我如何绘制与标尺平行的蓝线?
标签: android android-canvas android-graphics