I would like to clear the contents of the canvas after drawing some things on the screen.
How to completely clear the screen? Any code snippets on it will be helpful.
Thanks.
This is my code:
public class Panel extends SurfaceView implements SurfaceHolder.Callback { private ViewThread mThread; private ArrayList<Element> mElements = new ArrayList<Element>(); public Panel(Context context, AttributeSet attrs) { super(context, attrs); this.setBackgroundColor(Color.TRANSPARENT); this.setZOrderOnTop(true); //necessary getHolder().setFormat(PixelFormat.TRANSPARENT); getHolder().addCallback(this); mThread = new ViewThread(this); } public void doDraw(Canvas canvas) { super.onDraw(canvas); //canvas.drawColor(Color.TRANSPARENT); // canvas.drawColor(Color.argb(0, 255, 255, 255)); //canvas.drawColor(Color.rgb(-1, -1, -1)); //canvas.drawARGB(0, 255, 255, 255); synchronized (mElements) { for (Element element : mElements) { element.doDraw(canvas); } } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { if (!mThread.isAlive()) { mThread = new ViewThread(this); mThread.setRunning(true); mThread.start(); } } @Override public void surfaceDestroyed(SurfaceHolder holder) { if (mThread.isAlive()) { mThread.setRunning(false); } } @Override public boolean onTouchEvent(MotionEvent event) { synchronized (mElements) { mElements.add(new Element(getResources(), (int) event.getX(), (int) event.getY())); } return super.onTouchEvent(event); }
}
source share