title: Android - Cut a circle from a square Bitmap
body: <p>I am trying to cut a circle from a square bitmap using following code</p>
  
  <pre><code>        Canvas canvas=new Canvas(bitmapimg );
          int circleXCoord = bitmapimg .getWidth() / 2;
          int circleYCoord = bitmapimg .getHeight() / 2;
          int circleRadius = bitmapimg .getWidth() / 2;
  
          Rect rect = new Rect(circleXCoord - circleRadius, circleYCoord - circleRadius, circleXCoord + circleRadius, circleYCoord + circleRadius);
  
          int width = rect.width();
          int height = rect.height();
  
          Paint paint = new Paint();
          paint.setStyle(Paint.Style.STROKE);
          paint.setColor(Color.BLUE);
          canvas.drawRect(rect, paint);
          canvas.drawBitmap(bitmapimg , rect, rect, paint);
          Path p = new Path();
          p.addCircle(circleXCoord, circleYCoord, width / 2F, Path.Direction.CW);
          canvas.clipPath(p, Region.Op.DIFFERENCE);
          canvas.drawColor(0, PorterDuff.Mode.CLEAR);
  </code></pre>
  
  <p>The idea is to attach a square (rectangular) bitmap to canvas and then clip a circular path. Clear out the difference between the rectangle and circle (make it transparent).</p>
  
  <p>The code works fine for Android 4, but on Android 2.3.3 device, the difference area is appearing black rather that transparent. </p>
  
  <p>Am I missing something here or PorterDuff.Mode.CLEAR is not supported in gingerbread? Is there a better way to cut a circle from a square in Android? </p>