package com.example.myapplication.utils; import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.os.Build; import android.support.v4.app.Fragment; import android.util.Log; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.bumptech.glide.GlideBuilder; import com.bumptech.glide.load.DecodeFormat; import com.bumptech.glide.module.GlideModule; import com.bumptech.glide.request.animation.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; import com.example.myapplication.R; import com.example.myapplication.activity.SecondActivity; import com.example.myapplication.app.MyApp; /** * Created by jh on 2016/9/6. */ public class ImageLoaderUtils { private static String TAG = "ImageLoader"; /** * 借助内部类 实现线程安全的单例模式 * 属于懒汉式单例,因为Java机制规定,内部类SingletonHolder只有在getInstance() * 方法第一次调用的时候才会被加载(实现了lazy),而且其加载过程是线程安全的。 * 内部类加载的时候实例化一次instance。 */ public ImageLoaderUtils() { } private static class GlideLoadUtilsHolder { private final static ImageLoaderUtils INSTANCE = new ImageLoaderUtils(); } public static ImageLoaderUtils getInstance() { return GlideLoadUtilsHolder.INSTANCE; } /** * Glide 加载 简单判空封装 防止异步加载数据时调用Glide 抛出异常 * * @param context * @param url 加载图片的url地址 String * @param imageView 加载图片的ImageView 控件 * @param default_image 图片展示错误的本地图片 id */ public void glideLoad(Context context, String url, ImageView imageView, int default_image) { if (context != null) { Glide.with(context).load(url).error(default_image).crossFade ().into(imageView); } else { Log.i(TAG, "Picture loading failed,context is null"); } } @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public void glideLoad(Activity activity, String url, ImageView imageView, int default_image) { if (!activity.isDestroyed()) { Glide.with(activity).load(url).error(default_image).crossFade ().into(imageView); } else { Log.i(TAG, "Picture loading failed,activity is Destroyed"); } } public void glideLoad(Fragment fragment, String url, ImageView imageView, int default_image) { if (fragment != null && fragment.getActivity() != null) { Glide.with(fragment).load(url).error(default_image).crossFade ().into(imageView); } else { Log.i(TAG, "Picture loading failed,fragment is null"); } } public void glideLoad(android.app.Fragment fragment, String url, ImageView imageView, int default_image) { if (fragment != null && fragment.getActivity() != null) { Glide.with(fragment).load(url).error(default_image).crossFade ().into(imageView); } else { Log.i(TAG, "Picture loading failed,android.app.Fragment is null"); } } // // public static void displayImage(Context context, ImageView imageView, String url){ // Glide.with(context).load(url).into(imageView); // } // public static void displayImage(Home_Fragment_Dailypat_Activity context, ImageView imageView, int path){ ; } // // public static void displayImageWithNormal(Context context, ImageView imageView, String url){ // Glide.with(context).load(url).placeholder(R.mipmap.ic_launcher).into(imageView); // } // // public static void displayDefaultImage(Context context, ImageView imageView, String id){ // Glide.with(context).load(id).into(imageView); // } // // public static void displayBitMapImage(Context context, final ImageView imageView, Object id){ // Glide.with(context).load(id).asBitmap().into(new SimpleTarget<Bitmap>() { // @Override // public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { // imageView.setImageBitmap(resource); // } // }); // } // // @Override // public void applyOptions(Context context, GlideBuilder builder) { // builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888); // } // @Override // public void registerComponents(Context context, Glide glide) { // // } /* public static void displayImageFile(Context context, ImageView imageView, File file){ Glide.with(context).load(file).placeholder(R.drawable.default_video).into(imageView); }*/ }
完美的处理Glide溢出 使用单例处理
最新推荐文章于 2022-11-05 21:20:49 发布