Andorid开发之Picasso通过URL获取用户头像的圆形显示
程序员文章站
2023-11-13 16:29:40
1.设置布局属性:
2.bitmaputils类-- 得到指定...
1.设置布局属性:
<imageview android:scaletype="fitxy"/>
2.bitmaputils类-- 得到指定圆形的bitmap对象
public static bitmap circlebitmap(bitmap source) { //获取bitmap的宽度 int width = source.getwidth(); //以bitmap的宽度值作为新的bitmap的宽高值。 bitmap bitmap = bitmap.createbitmap(width, width, bitmap.config.argb_8888); //以此bitmap为基准,创建一个画布 canvas canvas = new canvas(bitmap); paint paint = new paint(); paint.setantialias(true); //在画布上画一个圆 canvas.drawcircle(width / 2, width / 2, width / 2, paint); //设置图片相交情况下的处理方式 //setxfermode:设置当绘制的图像出现相交情况时候的处理方式的,它包含的常用模式有: //porterduff.mode.src_in 取两层图像交集部分,只显示上层图像 //porterduff.mode.dst_in 取两层图像交集部分,只显示下层图像 paint.setxfermode(new porterduffxfermode(porterduff.mode.src_in)); //在画布上绘制bitmap canvas.drawbitmap(source, 0, 0, paint); return bitmap; }
3.bitmaputils类--压缩图片
//实现图片的压缩处理 //设置宽高必须使用浮点型,否则导致压缩的比例:0 public static bitmap zoom(bitmap source,float width ,float height){ matrix matrix = new matrix(); //图片的压缩处理 matrix.postscale(width / source.getwidth(),height / source.getheight()); bitmap bitmap = bitmap.createbitmap(source, 0, 0, source.getwidth(), source.getheight(), matrix, false); return bitmap; }
4.根据user.getimageurl()显示圆形图像
//使用picasso联网获取图片 picasso.with(this.getactivity()).load(user.getimageurl()).transform(new transformation() { @override public bitmap transform(bitmap source) {//下载以后的内存中的bitmap对象 //压缩处理 bitmap bitmap = bitmaputils.zoom(source, uiutils.dp2px(62),uiutils.dp2px(62)); //圆形处理 bitmap = bitmaputils.circlebitmap(bitmap); //回收bitmap资源 source.recycle(); return bitmap; } @override public string key() { return "";//需要保证返回值不能为null。否则报错 } }).into(ivmeicon);
以上所述是小编给大家介绍的andorid开发之picasso通过url获取用户头像的圆形显示,希望对大家有所帮助
上一篇: 用php定义一个数组最简单的方法