title: Android Circular Network Image View showing different sizes
body: <p>Here is the code for implementing <code>CircularNetworkImageView</code>. I got what I wanted but the problem here is that the sizes of the circle images are not fixed. Some are either small or large. And depending on the size, the images are somewhat like jumping on different positions within the view layout. I have already set a fixed width and height on xml but the problem is still there. Please help me with this.</p>
  
  <pre><code>    public class CircularNetworkImageView extends NetworkImageView {
      Context mContext;
  
      public CircularNetworkImageView(Context context) {
          super(context);
          mContext = context;
      }
  
      public CircularNetworkImageView(Context context, AttributeSet attrs) {
          this(context, attrs, 0);
          mContext = context;
      }
  
      public CircularNetworkImageView(Context context, AttributeSet attrs,
              int defStyle) {
          super(context, attrs, defStyle);
          mContext = context;
      }
  
      @Override
      public void setImageBitmap(Bitmap bm) {
          if(bm==null) return;
          setImageDrawable(new BitmapDrawable(mContext.getResources(),
                  getCircularBitmap(bm)));
      }
  
      /**
       * Creates a circular bitmap and uses whichever dimension is smaller to determine the width
       * &lt;br/&gt;Also constrains the circle to the leftmost part of the image
       * 
       * @param bitmap
       * @return bitmap
       */
      public Bitmap getCircularBitmap(Bitmap bitmap) {
          Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
                  bitmap.getHeight(), Config.ARGB_8888);
          Canvas canvas = new Canvas(output);
          int width = bitmap.getWidth();
          if(bitmap.getWidth()&gt;bitmap.getHeight())
              width = bitmap.getHeight();
          final int color = 0xff424242;
          final Paint paint = new Paint();
          final Rect rect = new Rect(0, 0, width, width);
          final RectF rectF = new RectF(rect);
          final float roundPx = width / 2;
  
          paint.setAntiAlias(true);
          canvas.drawARGB(0, 0, 0, 0);
          paint.setColor(color);
          canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
  
          paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
          canvas.drawBitmap(bitmap, rect, rect, paint);
  
          return output;
      }
  
  }
  </code></pre>
  
  <p>I got this code on this link here: <a href="https://gist.github.com/bkurzius/99c945bd1bdcf6af8f99" rel="nofollow">CircularNetworkImageView</a>. </p>