Pages

Tuesday, 31 October 2017

Creating your own Circular Network ImageView

Hi guys,
Here i'm showing android source code to create your own Circular Network Image View.
You can use the following android code for create.
First of all you need to create a Class named CircularNetworkImageView and Paste the following code.



package com.yourpackagename;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Bitmap.Config;
import android.graphics.PorterDuff.Mode;
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;


import com.android.volley.toolbox.NetworkImageView;


/** * Created by mad on 10/30/2017. */
public class CircularNetworkImageView extends NetworkImageView {
    Context context;

    public CircularNetworkImageView(Context context) {
        super(context);
        context = context;
    }

    public CircularNetworkImageView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
        context = context;
    }

    public CircularNetworkImageView(Context context, AttributeSet attrs,
                                    int defStyle) {
        super(context, attrs, defStyle);
        context = context;
    }

    @Override    public void setImageBitmap(Bitmap bm) {
        if(bm==null) return;
        setImageDrawable(new BitmapDrawable(context.getResources(),
                getCircularBitmap(bm)));
    }
    public Bitmap getCircularBitmap(Bitmap bitmap) {
        Bitmap imgview = Bitmap.createBitmap(bitmap.getWidth(),
                bitmap.getHeight(), Config.ARGB_8888);
        Canvas canvas = new Canvas(imgview);
        int width = bitmap.getWidth();
        if(bitmap.getWidth()>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 imgview ;
    }

now you can use it in Xml code as.

<com.yourpackagename.CircularNetworkImageView
android:layout_width="90dp"

android:layout_height="90dp"

android:id="@+id/circularnetworkimageview"
android:scaleType="centerCrop"
/>
Enjoy With Coding.....