路径。 lineTo只绘制了一半的长度

时间:2012-11-15 11:14:31

标签: android

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

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

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

3 个答案:

答案 0 :(得分: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)坐标是否仍在屏幕内?

答案 1 :(得分:1)

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

检查以下内容:

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

问候。

答案 2 :(得分:0)

感谢Goz和其他帮助我解决这个问题的人,有人发现Paint正在使用这个设置:

  

mPaint.setPathEffect(new CornerPathEffect(1000))

当删除它或将其设置为null时,lineTo会一直运行。一个人刚开始没想到Paint会这样做,但是这个角落的圆角效应可以缩短一条直线。