欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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获取用户头像的圆形显示,希望对大家有所帮助