title: Clear the canvas area
body: <p>I have made a custom view which is refereed from xml layout. I added a button for clearing the view. Now I want to clear the canvas area upon clicking. I added an onClick event in xml layout file.Now how n where do I add the code for clearing the whole view/canvas? I have just added few portion of code. (this is not clearing anything). I have added my activity,view and layout file in order as below.</p>
  
  <pre><code>public class CustomViewActivity extends Activity {
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
      }
  
      public void clearLine(View v) {
  
      new CustomView(CustomViewActivity.this, null).clearCanvas();        
    } 
  
  }
  
  public class CustomView extends View {
  
      private Paint paint = new Paint();
        private Path path = new Path();
        public Boolean clearCanvas = false;
  
        public CustomView(Context context, AttributeSet attrs, int defStyle) {
              super(context, attrs, defStyle);         
          }
  
      public CustomView(Context context,AttributeSet attrs ) {
          super(context,attrs);
          paint.setAntiAlias(true);
          paint.setColor(Color.BLUE);
          paint.setTextSize(20);
          paint.setStyle(Paint.Style.STROKE);
          paint.setStrokeJoin(Paint.Join.ROUND);
          paint.setStrokeWidth(5f);
      }
  
      protected void onDraw(Canvas canvas) {
      if(clearCanvas)
          {  // Choose the colour you want to clear with.
              canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
              //canvas.drawColor(0, Mode.CLEAR);
              clearCanvas = false;            
          }
  
          super.onDraw(canvas);
          canvas.drawText("Hello World", 5, 30, paint);
          canvas.drawPath(path, paint);
  
      }
  
      @Override
      public boolean onTouchEvent(MotionEvent event) {
  
      //int action = event.getAction() &amp; MotionEvent.ACTION_MASK;
  
         float eventX = event.getX();
          float eventY = event.getY();
  
          switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
              path.moveTo(eventX, eventY);
  
              return true;
            case MotionEvent.ACTION_MOVE: 
              path.lineTo(eventX, eventY);
              break;
            case MotionEvent.ACTION_UP:
              // nothing to do 
             break;
            default:
              return false;
          }
  
          // Schedules a repaint.
          invalidate();
          return true;
  
      }
      public void clearCanvas(){
  
              clearCanvas = true;
              postInvalidate();
              //canvas.drawColor(0, Mode.CLEAR);
  
          }
  
  }
  
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent" &gt;
  
  
             &lt;com.example.CustomViewEvent.CustomView
                 android:id="@+id/customView"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content" /&gt;
  
             &lt;Button
                 android:id="@+id/button1"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentBottom="true"
                 android:layout_centerHorizontal="true"
                 android:layout_marginBottom="28dp"
                 android:onClick="clearLine"
                 android:text="CLEAR" /&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>