Quantcast
Channel: How to create drawable circle with below requirement? - Stack Overflow
Viewing all articles
Browse latest Browse all 5

Answer by Bhagwat K for How to create drawable circle with below requirement?

$
0
0

For rounded (Circled imageView)add this class to your source

import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;public class RoundedImageView extends ImageView {       public RoundedImageView(Context ctx, AttributeSet attrs) {              super(ctx, attrs);       }       @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 = getRoundedCroppedBitmap(bitmap, w);              canvas.drawBitmap(roundBitmap, 0, 0, null);       }       public static Bitmap getRoundedCroppedBitmap(Bitmap bitmap, int radius) {              Bitmap finalBitmap;              if (bitmap.getWidth() != radius || bitmap.getHeight() != radius)                     finalBitmap = Bitmap.createScaledBitmap(bitmap, radius, radius,                                  false);              else                     finalBitmap = bitmap;              Bitmap output = Bitmap.createBitmap(finalBitmap.getWidth(),                           finalBitmap.getHeight(), Config.ARGB_8888);              Canvas canvas = new Canvas(output);              final Paint paint = new Paint();              final Rect rect = new Rect(0, 0, finalBitmap.getWidth(),                           finalBitmap.getHeight());              paint.setAntiAlias(true);              paint.setFilterBitmap(true);              paint.setDither(true);              canvas.drawARGB(0, 0, 0, 0);              paint.setColor(Color.parseColor("#BAB399"));              canvas.drawCircle(finalBitmap.getWidth() / 2 + 0.7f,                           finalBitmap.getHeight() / 2 + 0.7f,                           finalBitmap.getWidth() / 2 + 0.1f, paint);              paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));              canvas.drawBitmap(finalBitmap, rect, rect, paint);              return output;       }}

and then change your ImageView to your package name and class name (RoundedImageView) in your layout file such as

<com.mypackege.RoundedImageView        android:id="@+id/imageView_round"        android:layout_width="100dp"        android:layout_height="100dp"        android:layout_marginTop="15dp"        android:src="@drawable/my_image" />

Hope this will work.


Viewing all articles
Browse latest Browse all 5

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>