Reena
Reena

Reputation: 561

How to get ImageView with round edge and round vertices in android?

I want to ImgeView with round edge and round vertices in android. Image Like below,enter image description here

How to achieve it?

Please give me reply as soon as possible.

Thanks.

Upvotes: 0

Views: 881

Answers (4)

Vasant
Vasant

Reputation: 3575

you can use radius with style and set into you imageview background.

 <?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
   android:color="#C7B299"
   android:dashWidth="10px"
   android:dashGap="10px"
   android:width="1dp"/>
  <corners android:radius="20dp"/>
  <padding android:left="5dp"
      android:right="5dp"
      android:top="5dp"
      android:bottom="5dp"
      />
</shape>

Upvotes: 0

Ashwini Bhat
Ashwini Bhat

Reputation: 500

ADD this in XML:

<de.hdodenhof.circleimageview.CircleImageView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="centerCrop"
                android:src="@drawable/image"
                app:border_width="5dp" />

And in Gradle:

compile 'de.hdodenhof:circleimageview:1.2.1'

hope it may help.

Upvotes: 4

Amit Vaghela
Amit Vaghela

Reputation: 22945

use https://github.com/vinc3m1/RoundedImageView

add :

RoundedImageView riv = new RoundedImageView(context);
riv.setScaleType(ScaleType.CENTER_CROP);
riv.setCornerRadius((float) 10);
riv.setBorderWidth((float) 2);
riv.setBorderColor(Color.DKGRAY);
riv.mutateBackground(true);
riv.setImageDrawable(drawable);
riv.setBackground(backgroundDrawable);
riv.setOval(true);
riv.setTileModeX(Shader.TileMode.REPEAT);
riv.setTileModeY(Shader.TileMode.REPEAT);

enter image description here

Upvotes: 3

Nitesh Pareek
Nitesh Pareek

Reputation: 362

use this custom class for showing circular ImageView

public class CircularImage {
    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.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(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);
        return output;
    }
}

Upvotes: 2

Related Questions