title: Circular Imageview in android
body: <p>I want circular ImageView in my app. I found some code but this is only round the corner image not to circle. Here is my code. Also check the image.  </p>
  
  <p><a href="https://i.stack.imgur.com/5V09v.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/5V09v.png" alt="enter image description here"></a></p>
  
  <pre><code>   public class CircularImageView extends android.support.v7.widget.AppCompatImageView {
  
  public CircularImageView(Context context) {
      super(context);
  }
  
  public CircularImageView(Context context, AttributeSet attrs) {
      super(context, attrs);
  }
  
  public CircularImageView(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
  }
  
  @Override
  protected void onDraw(Canvas canvas) {
  
      Drawable drawable = getDrawable();
  
      if (drawable == null) {
          return;
      }
  
      if (getWidth() == 0 || getHeight() == 0) {
          return;
      }
      Bitmap b = ((BitmapDrawable) drawable).getBitmap();
      Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);
  
      int w = getWidth(), h = getHeight();
  
      Bitmap roundBitmap = getRoundBitmap(bitmap, w);
      canvas.drawBitmap(roundBitmap, 0, 0, null);
  
  }
  
  public static Bitmap getRoundBitmap(Bitmap bmp, int radius) {
      Bitmap sBmp;
  
      if (bmp.getWidth() != radius || bmp.getHeight() != radius) {
          float smallest = Math.min(bmp.getWidth(), bmp.getHeight());
          float factor = smallest / radius;
          sBmp = Bitmap.createScaledBitmap(bmp, (int)(bmp.getWidth() / factor), (int)(bmp.getHeight() / factor), false);
      } else {
          sBmp = bmp;
      }
  
      Bitmap output = Bitmap.createBitmap(radius, radius,
              Bitmap.Config.ARGB_8888);
  
  
      Canvas canvas = new Canvas(output);
  
      final int color = 0xffa19774;
      final Paint paint = new Paint();
      final Rect rect = new Rect(0, 0, radius, radius);
  
      paint.setAntiAlias(true);
      paint.setFilterBitmap(true);
      paint.setDither(true);
      canvas.drawARGB(0, 0, 0, 0);
      paint.setColor(Color.parseColor("#BAB399"));
      canvas.drawCircle(radius / 2 + 0.7f,
              radius / 2 + 0.7f, radius / 2 + 0.1f, paint);
      paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
      canvas.drawBitmap(sBmp, rect, rect, paint);
  
      return output;
  }
  
   }
  </code></pre>
  
  <p>And Here is xml file</p>
  
  <pre><code> &lt;com.example.CircularImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            app:srcCompt="@drawable/dummy /&gt;
  </code></pre>
  
  <p>I read many answers on stackoverflow but nothing found according to my requirements. I don't want to use any library I want to create my own code.<br>
  I'm new in android can you please let me know want I'm missing in my code.</p>