1

有人可以帮我理解 path.lineTo(x,y) 是如何工作的吗?我正在尝试在手指绘画类型的应用程序中绘制一条简单的直线。这是我试过的一个例子:

            mPath.reset();
            mPath.moveTo(0, 0);
            mPath.lineTo(480, 800);

但是这条线只从 0,0 到 240、400 - 当我在屏幕上移动手指时,总是只有一半的距离。(实际程序有 startX、startY 和 x,y 触摸坐标而不是 0,0 和 480,800)

4

3 回答 3

1

也许这段代码对你有用:

Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
Path mPath= new Path();
mPath.moveTo(0, 0);
mPath.lineTo(480, 800);
p.setColor(0xff800000);
canvas.drawPath(mPath,p);

另外,(480, 800) 坐标,它还在你的屏幕内吗?

于 2012-11-15T11:53:12.143 回答
1

这些Path命令完全按照您的预期工作,上面的命令应该在完全覆盖 480x800 屏幕的视图中从左上角到右下角画一条线。

检查以下内容:

  • 视图覆盖所有屏幕
  • 没有其他视图与它重叠
  • 坐标相对于视图的左上角坐标。检查左上角的视图是否在屏幕的左上角

问候。

于 2012-11-15T11:56:03.650 回答
1

感谢 Goz 和其他帮助我解决此问题的人,结果表明 Paint 正在使用以下设置进行此操作:

mPaint.setPathEffect(新 CornerPathEffect(1000))

当它被删除或设置为 null 时,lineTo 会一直运行。一开始只是没想到Paint会这样做,但是这种圆角效果可以缩短直线。

于 2012-11-17T09:20:44.750 回答