title: Erase bitmap parts using PorterDuff mode
body: <p>I try to erase parts of a bitmap in my Android application by using Porter-Duff Xfermodes. </p>
  
  <p>I have a green background which is overlayed by a blue bitmap. When I touch the screen a "hole" in the overlaying bitmap is supposed to be created making the green background visible. Instead of a hole my current code produces a black dot.</p>
  
  <p>Below is my code. Any ideas, what I am doing wrong here?</p>
  
  <pre><code>/** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
              WindowManager.LayoutParams.FLAG_FULLSCREEN);
      setContentView(new DrawView(this));
  }
  
  public class DrawView extends View implements OnTouchListener {
  
      private int x = 0;
      private int y = 0;
  
      Bitmap bitmap;
      Canvas bitmapCanvas;
  
      private final Paint paint = new Paint();
      private final Paint eraserPaint = new Paint();
  
      public DrawView(Context context) {
          super(context);
          setFocusable(true);
          setFocusableInTouchMode(true);
  
          this.setOnTouchListener(this);
  
          // Set background
          this.setBackgroundColor(Color.GREEN);
  
          // Set bitmap
          bitmap = Bitmap.createBitmap(320, 480, Bitmap.Config.RGB_565);
          bitmapCanvas = new Canvas();
          bitmapCanvas.setBitmap(bitmap);
          bitmapCanvas.drawColor(Color.BLUE);
  
          // Set eraser paint properties
          eraserPaint.setAlpha(0);
          eraserPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
          eraserPaint.setAntiAlias(true);
      }
  
      @Override
      public void onDraw(Canvas canvas) {
          bitmapCanvas.drawColor(Color.BLUE);
          bitmapCanvas.drawCircle(x, y, 10, eraserPaint);
  
          canvas.drawBitmap(bitmap, 0, 0, paint);
      }
  
      public boolean onTouch(View view, MotionEvent event) {
          x = (int) event.getX();
          y = (int) event.getY();
  
          invalidate();
          return true;
      }
  
  }
  </code></pre>