Glide联网加载头像

GlideImageDemo项目名
在要加载头像的地方声明
private  RequestManager  glideRequest ;
vh. imgView  = contentView
        .findViewById(R.id. imgFansCircular ) ;
glideRequest  = Glide. with ( context ) ;
glideRequest .load(Constant. URL_BASE  + head).transform( new  GlideRoundTransform( context 10 )).into(vh. imgView ) ;


新建两个类
public class  GlideCircleTransform  extends  BitmapTransformation {
     public  GlideCircleTransform (Context context) {
         super (context) ;
     }

     @Override  protected  Bitmap  transform (BitmapPool pool Bitmap toTransform , int  outWidth , int  outHeight) {
         return  circleCrop (pool toTransform) ;
     }

     private static  Bitmap  circleCrop (BitmapPool pool Bitmap source) {
         if  (source ==  null return null;

        int  size = Math. min (source.getWidth() source.getHeight()) ;
        int  x = (source.getWidth() - size) /  2 ;
        int  y = (source.getHeight() - size) /  2 ;

         //  TODO this could be acquired from the pool too
         Bitmap squared = Bitmap. createBitmap (source x y size size) ;

         Bitmap result = pool.get(size size Bitmap.Config. ARGB_8888 ) ;
        if  (result ==  null ) {
            result = Bitmap. createBitmap (size size Bitmap.Config. ARGB_8888 ) ;
         }

        Canvas canvas =  new  Canvas(result) ;
         Paint paint =  new  Paint() ;
         paint.setShader( new  BitmapShader(squared BitmapShader.TileMode. CLAMP BitmapShader.TileMode. CLAMP )) ;
         paint.setAntiAlias( true ) ;
        float  r = size /  2f ;
         canvas.drawCircle(r r r paint) ;
        return  result ;
     }

     @Override  public  String  getId () {
         return  getClass().getName() ;
     }
}


另一个
public class  GlideRoundTransform  extends  BitmapTransformation {

     private static float  radius  0f ;

    public  GlideRoundTransform (Context context) {
         this (context 4 ) ;
     }

     public  GlideRoundTransform (Context context , int  dp) {
         super (context) ;
        this . radius  = Resources. getSystem ().getDisplayMetrics(). density  * dp ;
     }

     @Override  protected  Bitmap  transform (BitmapPool pool Bitmap toTransform , int  outWidth , int  outHeight) {
         return  roundCrop (pool toTransform) ;
     }

     private static  Bitmap  roundCrop (BitmapPool pool Bitmap source) {
         if  (source ==  null return null;

         Bitmap result = pool.get(source.getWidth() source.getHeight() Bitmap.Config. ARGB_8888 ) ;
        if  (result ==  null ) {
            result = Bitmap. createBitmap (source.getWidth() source.getHeight() Bitmap.Config. ARGB_8888 ) ;
         }

        Canvas canvas =  new  Canvas(result) ;
         Paint paint =  new  Paint() ;
         paint.setShader( new  BitmapShader(source BitmapShader.TileMode. CLAMP BitmapShader.TileMode. CLAMP )) ;
         paint.setAntiAlias( true ) ;
         RectF rectF =  new  RectF( 0f 0f source.getWidth() source.getHeight()) ;
         canvas.drawRoundRect(rectF radius radius paint) ;
        return  result ;
     }

     @Override  public  String  getId () {
         return  getClass().getName() + Math. round ( radius ) ;
     }
}


最后:在dependencies里添加
compile 'com.github.bumptech.glide:glide:3.6.1'

Demo下载链接:https://download.csdn.net/download/qq_15675449/10467270

猜你喜欢

转载自blog.csdn.net/qq_15675449/article/details/80623459