Glide 프레임 워 크 는 glide-transformations 와 결합 하여 사용 하거나 자신 이 Transformation 을 다시 쓰 거나 사용 합 니 다.

7686 단어 Android
1 //gidle compile ‘com.github.bumptech.glide:glide:3.7.0’
//glide-transformation(3.0.1                2.0.1                     (https://github.com/wasabeef/glide-transformations)

copile'jp.wasabef:glide-transformations:2.0.1'2 에 제 가 평소에 사용 하 는 Glide 도구 류 를 붙 였 습 니 다.
public class GlideUtil{/원 각 이미지 public static 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);
    }
}
public static void downBlur(Context context,String url,ImageView imageView){
    Glide.with(context)
            .load(url)
            .crossFade(1000)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .bitmapTransform(new BlurTransformation(context,23,4)) // “23”:     ( 0.0 25.0  ),  ”25";"4":      ,  “1”。
            .into(imageView);

}



//       
public static void downImg(final Context context, String url, final ImageView imageView) {
    Glide
            .with(context.getApplicationContext())
            .load(url)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .thumbnail(0.1f)
            .into(imageView)
        ;
}
//       ,        
public static void downImgForError(final Context context, String url, final ImageView imageView,int id) {
    Glide
            .with(context.getApplicationContext())
            .load(url)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .placeholder(R.drawable.img_loading)
            .error(R.drawable.img_error_loading)
          /*  .thumbnail(0.1f)*/
            .into(imageView)
        ;
}
//       ,        
public static void downImgForErrorRundle( Context context, String url, ImageView imageView,int id) {
    Glide
            .with(context.getApplicationContext())
            .load(url)

            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .placeholder(R.drawable.img_loading)
            .error(R.drawable.img_error_loading)

          /*  .thumbnail(0.1f)*/
           /* .crossFade(1000)*/
            .bitmapTransform(new RoundedCornersTransformation(context.getApplicationContext(),30,0,RoundedCornersTransformation.CornerType.ALL))
            .crossFade(1000)
            .into(imageView)
    ;
}
//       ,        
public static void downImgForError1(final Context context, String url, final ImageView imageView,int id) {
    Glide
            .with(context.getApplicationContext())
            .load(url)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .error(R.drawable.img_error_loading)
          /*  .thumbnail(0.1f)*/
            .into(imageView)
    ;
}
//       ,        
public static void downImgForError2(final Context context, String url, final ImageView imageView,int id) {
    Glide
            .with(context.getApplicationContext())
            .load(url)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .error(id)
          /*  .thumbnail(0.1f)*/
            .into(imageView)
    ;
}
//       ,        
public static void downImgPhototViewForError(final Context context, String url, final ImageView imageView,int idp,int id) {
    Glide
            .with(context.getApplicationContext())
            .load(url)
            .diskCacheStrategy(DiskCacheStrategy.RESULT)
            .placeholder(idp)
            .error(id)
         /*   .thumbnail(0.1f)*/
            .into(imageView)
    ;
}
//               
public static void downImgForH(final Context context, String url, final ImageView imageView) {
    Glide
            .with(context.getApplicationContext())
            .load(url)
            .asBitmap()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .thumbnail(0.1f)
            .into(new SimpleTarget() {
                @Override
                public void onResourceReady(Bitmap resource, GlideAnimation super Bitmap> glideAnimation) {
                    ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
                   /* imageView.measure(0,0);
                    int width= layoutParams.width;*/

                    //              
                    int bitmapW = resource.getWidth();
                    int bitmapH = resource.getHeight();
                    int h ;// (int) (((double) bitmapH / bitmapW) * ScreenUtil.getScreenWidth(context));
                    h=(int) (bitmapH*(((double) 330/bitmapW)));
                    L.d(bitmapW + "   " + bitmapH + "----->" + h+"width");
                    //  imageview   
                    layoutParams.height = h;
                    imageView.setLayoutParams(layoutParams);
                    //  imageview     
                    imageView.setImageBitmap(resource);
                }
            });



}

//               
public static void downImgForHwith(final Context context, String url, final ImageView imageView) {
    Glide
            .with(context.getApplicationContext())
            .load(url)
            .asBitmap()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .thumbnail(0.1f)
            .into(new SimpleTarget() {
                @Override
                public void onResourceReady(Bitmap resource, GlideAnimation super Bitmap> glideAnimation) {
                    ViewGroup.LayoutParams layoutParams = imageView.getLayoutParams();
                   /* imageView.measure(0,0);
                    int width= layoutParams.width;*/

                    //              
                    int bitmapW = resource.getWidth();
                    int bitmapH = resource.getHeight();
                    int h ;// (int) (((double) bitmapH / bitmapW) * ScreenUtil.getScreenWidth(context));
                   // h=(int) (bitmapH*(((double) 120/bitmapW)));

                   // int w= (int) (((double) 120 / bitmapH) * bitmapW);
                    int w;
                    w= (int) (bitmapW*(((double) 120 / bitmapH)));
                    //  imageview   
                    layoutParams.width=w;
                    L.d(bitmapW + "   " + bitmapW + "----->" + w+"width");

                    imageView.setLayoutParams(layoutParams);

                    //  imageview     
                    imageView.setImageBitmap(resource);
                }
            });

}

}
3 사용 중 에 발생 하 는 문제
a.원 각 을 생 성 하 는 그림 을 사용 할 때 ImageView 가 scale Type 을 설정 하면 효과 에 영향 을 줍 니 다.

좋은 웹페이지 즐겨찾기