Bitmap in ImageView with rounded corners Bitmap in ImageView with rounded corners android android

Bitmap in ImageView with rounded corners


try this one :

public class CustomImageView extends ImageView {    public static float radius = 18.0f;      public CustomImageView(Context context) {        super(context);    }    public CustomImageView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public CustomImageView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    @Override    protected void onDraw(Canvas canvas) {        //float radius = 36.0f;          Path clipPath = new Path();        RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight());        clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW);        canvas.clipPath(clipPath);        super.onDraw(canvas);    }}

and

<your.pack.name.CustomImageView                android:id="@+id/selectIcon"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_centerInParent="true"                android:scaleType="centerCrop" />CustomImageView  iconImage = (CustomImageView )findViewById(R.id.selectIcon);iconImage.setImageBitmap(bitmap);

or,

ImageView iv= new CustomImageView(this);iv.setImageResource(R.drawable.pic);


It's strange that nobody here has mentioned RoundedBitmapDrawable from Android Support Library v4. For me it is the simplest way to get rounded corners without borders. Here is example of usage:

RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap);final float roundPx = (float) bitmap.getWidth() * 0.06f;roundedBitmapDrawable.setCornerRadius(roundPx);


Make one function which make rounded to your bitmap using canvas.

public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap            .getHeight(), Config.ARGB_8888);    Canvas canvas = new Canvas(output);    final int color = 0xff424242;    final Paint paint = new Paint();    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());    final RectF rectF = new RectF(rect);    final float roundPx = pixels;    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;}

for more info:> here