Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用指定的坐标和干净的画布绘制一条线_Android - Fatal编程技术网

Android 用指定的坐标和干净的画布绘制一条线

Android 用指定的坐标和干净的画布绘制一条线,android,Android,我需要在布局上画一条线,因为我在这里读了一些问题,我使用了DrawView类,但是我需要在某个点清理这个视图,然后在它上面画另一条线(或者如果可能的话只更改第一条线的坐标) 但我不知道如何才能轻松做到这一点,不幸的是,我唯一的想法就是从布局中删除DrawView,每次都创建另一个DrawView 编辑:我尝试使用save();要保存空画布,并在每次需要清理时还原(),但它似乎不起作用 public class DrawView extends View { Paint paint = n

我需要在布局上画一条线,因为我在这里读了一些问题,我使用了DrawView类,但是我需要在某个点清理这个视图,然后在它上面画另一条线(或者如果可能的话只更改第一条线的坐标)

但我不知道如何才能轻松做到这一点,不幸的是,我唯一的想法就是从布局中删除DrawView,每次都创建另一个DrawView

编辑:我尝试使用save();要保存空画布,并在每次需要清理时还原(),但它似乎不起作用

public class DrawView extends View {
    Paint paint = new Paint();
    float startX;
    float startY;
    float endX;
    float endY;

    public DrawView(Context context, float startX, float startY, float endX, float endY) {
        super(context);
        paint.setColor(Color.WHITE);
        this.setMinimumHeight(300);
        this.setMinimumWidth(300);

        this.startX = startX;
        this.startY = startY;
        this.endX = endX;
        this.endY = endY;
    }

    @Override
    public void onDraw(Canvas canvas) {
        canvas.drawLine(startX, startY, endX, endY, paint);
    }

}
你可以用

canvas.drawColor(int color)
用任何颜色给画布上色(意味着你要清理之前画的所有东西)。如果你使用

canvas.drawColor(Color.TRANSPARENT);

这将导致清洁画布

你知道,如果你想通过编程直接在屏幕上画画,那么你可以省去XML,通过SurfaceView来做,这里有一个指导:www.edu4java.com/