gpt4 book ai didi

android - 画线- Android

转载 作者:太空狗 更新时间:2023-10-29 13:40:32 25 4
gpt4 key购买 nike

我想使用触摸监听器在屏幕上画一条线,但是当我再次尝试画线时,它会删除​​上一条线。我正在使用这段代码:-

我无法找到问题的解决方案。

public class Drawer extends View
{
public Drawer(Context context)
{
super(context);
}

protected void onDraw(Canvas canvas)
{
Paint p = new Paint();
p.setColor(colordraw);
canvas.drawLine(x1, y1, x2, y2, p);
invalidate();
}
}

最佳答案

我很确定 invalidate() 会删除 Canvas ,因此您必须保留要绘制的线条集合。然后你需要在每次调用 invalidate() 之前绘制所有这些。

private class Line {

public Line(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
...
}

public class Drawer extends View
{
ArrayList<Line> lines;
public Drawer(Context context)
{
super(context);
lines = new ArrayList<Line>();
}

public void addLine(int x1, int y1, int x2, int y2) {
Line newLine = new Line(x1, y1, x2, y2);
lines.add(newLine);
}

protected void onDraw(Canvas canvas)
{
Paint p = new Paint();
p.setColor(colordraw);
for (Line myLine : lines) {
canvas.drawLine(myLine.getX1(), myLine.getY1(), myLine.getX2(), myLine.getY2(), p);
}
invalidate();
}
}

关于android - 画线- Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com