2011-10-28 151 views
0

我需要在布局上绘制一条线,为此我在这里阅读了一些问题,并使用了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); 
    } 

} 

回答

0

您可以使用

canvas.drawColor(int color) 

以任何颜色为您的画布着色(意味着您清理之前绘制的所有内容)。如果您使用

canvas.drawColor(Color.TRANSPARENT); 

这应该导致清洁您的画布。

+0

我试过了,它不起作用 – badoualy

+0

你可以发布你使用的代码吗? – nanoquack

-1

你知道,如果你想直接在屏幕上绘制编程,那么你就可以离开了XML,并通过SurfaceView做到这一点,这里是一个tuttorial:www.edu4java.com/