round image using picasso in android -
provide url's regarding , xml code this,it having errors in image view phase
package com.example.circularimageview; import android.content.context; import android.content.res.typedarray; import android.graphics.bitmap; import android.graphics.bitmapshader; import android.graphics.canvas; import android.graphics.color; import android.graphics.colorfilter; import android.graphics.matrix; import android.graphics.paint; import android.graphics.rectf; import android.graphics.shader; import android.graphics.drawable.bitmapdrawable; import android.graphics.drawable.colordrawable; import android.graphics.drawable.drawable; import android.net.uri; import android.support.annotation.colorres; import android.support.annotation.drawableres; import android.util.attributeset; import android.widget.imageview; public class circleimageview extends imageview { private static final scaletype scale_type = scaletype.center_crop; private static final bitmap.config bitmap_config = bitmap.config.argb_8888; private static final int colordrawable_dimension = 2; private static final int default_border_width = 0; private static final int default_border_color = color.black; private static final boolean default_border_overlay = false; private final rectf mdrawablerect = new rectf(); private final rectf mborderrect = new rectf(); private final matrix mshadermatrix = new matrix(); private final paint mbitmappaint = new paint(); private final paint mborderpaint = new paint(); private int mbordercolor = default_border_color; private int mborderwidth = default_border_width; private bitmap mbitmap; private bitmapshader mbitmapshader; private int mbitmapwidth; private int mbitmapheight; private float mdrawableradius; private float mborderradius; private colorfilter mcolorfilter; private boolean mready; private boolean msetuppending; private boolean mborderoverlay; public circleimageview(context context) { super(context); init(); } public circleimageview(context context, attributeset attrs) { this(context, attrs, 0); } public circleimageview(context context, attributeset attrs, int defstyle) { super(context, attrs, defstyle); // typedarray = context.obtainstyledattributes(attrs, r.styleable.circleimageview, defstyle, 0); // mborderwidth = a.getdimensionpixelsize(r.styleable.circleimageview_border_width, default_border_width); // mbordercolor = a.getcolor(r.styleable.circleimageview_border_color, default_border_color); // mborderoverlay = a.getboolean(r.styleable.circleimageview_border_overlay, default_border_overlay); // a.recycle(); init(); } private void init() { super.setscaletype(scale_type); mready = true; if (msetuppending) { setup(); msetuppending = false; } } @override public scaletype getscaletype() { return scale_type; }
please check below code.
import com.squareup.picasso.transformation; public class circletransform implements transformation { @override public bitmap transform(bitmap source) { int size = math.min(source.getwidth(), source.getheight()); int x = (source.getwidth() - size) / 2; int y = (source.getheight() - size) / 2; bitmap squaredbitmap = bitmap.createbitmap(source, x, y, size, size); if (squaredbitmap != source) { source.recycle(); } bitmap bitmap = bitmap.createbitmap(size, size, source.getconfig()); canvas canvas = new canvas(bitmap); paint paint = new paint(); bitmapshader shader = new bitmapshader(squaredbitmap, bitmapshader.tilemode.clamp, bitmapshader.tilemode.clamp); paint.setshader(shader); paint.setantialias(true); float r = size / 2f; canvas.drawcircle(r, r, r, paint); squaredbitmap.recycle(); return bitmap; } @override public string key() { return "circle"; }
after use picasso bind below.
picasso.with(activity).load(imagelink).transform(new circletransform()).into(imageview);
hope work you.
let me know if have query.
Comments
Post a Comment