DevUtils Github
Glide 工具类 -> GlideUtils.java
方法注释
withwithinit初始化方法cloneImageOptions克隆图片加载配置defaultOptions获取默认加载配置emptyOptions获取空白加载配置skipCacheOptions获取跳过缓存 ( 每次都从服务端获取最新 ) 加载配置getLoadResOptions获取自定义图片加载配置transformationOptions获取图片处理效果加载配置clearDiskCache清除磁盘缓存clearMemoryCache清除内存缓存onLowMemory低内存通知getDiskCache获取 SDCard 缓存空间preload预加载图片displayImage图片显示displayImageToGif图片显示loadImageBitmap图片加载loadImageDrawable图片加载loadImageFile图片加载loadImageGif图片加载cancelDisplayTask取消图片显示任务destroy销毁操作pause暂停图片加载resume恢复图片加载stop停止图片加载start开始图片加载
package dev
.other
;
import android
.app
.Activity
;
import android
.content
.Context
;
import android
.graphics
.Bitmap
;
import android
.graphics
.drawable
.Drawable
;
import android
.support
.annotation
.DrawableRes
;
import android
.support
.annotation
.NonNull
;
import android
.support
.v4
.app
.Fragment
;
import android
.support
.v4
.app
.FragmentActivity
;
import android
.view
.View
;
import android
.widget
.ImageView
;
import com
.bumptech
.glide
.Glide
;
import com
.bumptech
.glide
.Priority
;
import com
.bumptech
.glide
.RequestManager
;
import com
.bumptech
.glide
.load
.Transformation
;
import com
.bumptech
.glide
.load
.engine
.DiskCacheStrategy
;
import com
.bumptech
.glide
.load
.resource
.gif
.GifDrawable
;
import com
.bumptech
.glide
.request
.RequestOptions
;
import com
.bumptech
.glide
.request
.target
.Target
;
import java
.io
.File
;
import dev
.utils
.LogPrintUtils
;
public final class GlideUtils {
private GlideUtils() {
}
private static final String TAG
= GlideUtils
.class.getSimpleName();
private static GlideLoader sGlideLoader
;
private static RequestOptions DF_OPTIONS
= defaultOptions();
private static Context sContext
;
private static int sImageLoadingRes
= 0;
private static int sImageUriErrorRes
= 0;
private static int sImageFailRes
= 0;
@NonNull
public static GlideLoader
with(@NonNull Context context
) {
return new GlideLoader(Glide
.with(context
));
}
@NonNull
public static GlideLoader
with(@NonNull Activity activity
) {
return new GlideLoader(Glide
.with(activity
));
}
@NonNull
public static GlideLoader
with(@NonNull FragmentActivity activity
) {
return new GlideLoader(Glide
.with(activity
));
}
@NonNull
public static GlideLoader
with(@NonNull android
.app
.Fragment fragment
) {
return new GlideLoader(Glide
.with(fragment
));
}
@NonNull
public static GlideLoader
with(@NonNull Fragment fragment
) {
return new GlideLoader(Glide
.with(fragment
));
}
@NonNull
public static GlideLoader
with(@NonNull View view
) {
return new GlideLoader(Glide
.with(view
));
}
public static GlideLoader
with() {
if (sGlideLoader
== null
) {
try {
sGlideLoader
= new GlideLoader(Glide
.with(sContext
));
} catch (Exception e
) {
LogPrintUtils
.eTag(TAG
, e
, "with");
}
}
return sGlideLoader
;
}
public static void init(final Context context
) {
if (sContext
== null
&& context
!= null
) {
sContext
= context
.getApplicationContext();
with();
}
}
public static RequestOptions
cloneImageOptions(final RequestOptions options
) {
return (options
!= null
) ? options
.clone() : null
;
}
public static RequestOptions
defaultOptions() {
RequestOptions requestOptions
= new RequestOptions()
.diskCacheStrategy(DiskCacheStrategy
.ALL
)
.placeholder(sImageLoadingRes
)
.fallback(sImageUriErrorRes
)
.error(sImageFailRes
)
.priority(Priority
.HIGH
);
return requestOptions
;
}
public static RequestOptions
emptyOptions() {
return new RequestOptions();
}
public static RequestOptions
skipCacheOptions() {
return skipCacheOptions(cloneImageOptions(DF_OPTIONS
));
}
public static RequestOptions
skipCacheOptions(final RequestOptions options
) {
if (options
!= null
) {
return options
.diskCacheStrategy(DiskCacheStrategy
.NONE
).skipMemoryCache(true);
}
return options
;
}
public static RequestOptions
getLoadResOptions(@DrawableRes final int loadingRes
) {
return getLoadResOptions(cloneImageOptions(DF_OPTIONS
), loadingRes
);
}
public static RequestOptions
getLoadResOptions(final RequestOptions options
, @DrawableRes final int loadingRes
) {
if (options
!= null
&& loadingRes
!= 0) {
options
.placeholder(loadingRes
)
.fallback(loadingRes
)
.error(loadingRes
);
}
return options
;
}
public static RequestOptions
transformationOptions(final Transformation transformation
) {
return transformationOptions(cloneImageOptions(DF_OPTIONS
), transformation
);
}
public static RequestOptions
transformationOptions(final RequestOptions options
, final Transformation transformation
) {
if (options
!= null
) {
try {
options
.transform(transformation
);
} catch (Exception e
) {
LogPrintUtils
.eTag(TAG
, e
, "transformationOptions");
}
}
return options
;
}
public final static class GlideLoader {
private RequestManager mRequestManager
;
public GlideLoader(RequestManager requestManager
) {
this.mRequestManager
= requestManager
;
if (requestManager
!= null
) requestManager
.setDefaultRequestOptions(DF_OPTIONS
);
}
public void preload(final String uri
) {
preload(uri
, null
);
}
public void preload(final String uri
, final RequestOptions options
) {
if (mRequestManager
!= null
) {
if (options
!= null
) {
mRequestManager
.asBitmap().load(uri
).apply(options
).preload();
} else {
mRequestManager
.asBitmap().load(uri
).preload();
}
}
}
public void displayImage(final String uri
, final ImageView imageView
) {
displayImage(uri
, imageView
, null
);
}
public void displayImage(final String uri
, final ImageView imageView
, final RequestOptions options
) {
if (mRequestManager
!= null
&& imageView
!= null
) {
if (options
!= null
) {
mRequestManager
.asBitmap().load(uri
).apply(options
).into(imageView
);
} else {
mRequestManager
.asBitmap().load(uri
).into(imageView
);
}
}
}
public void displayImageToGif(final String uri
, final ImageView imageView
) {
displayImageToGif(uri
, imageView
, null
);
}
public void displayImageToGif(final String uri
, final ImageView imageView
, final RequestOptions options
) {
if (mRequestManager
!= null
&& imageView
!= null
) {
if (options
!= null
) {
mRequestManager
.asGif().load(uri
).apply(options
).into(imageView
);
} else {
mRequestManager
.asGif().load(uri
).into(imageView
);
}
}
}
public void loadImageBitmap(final String uri
, final Target
<Bitmap> target
) {
loadImageBitmap(uri
, target
, null
);
}
public void loadImageBitmap(final String uri
, final Target
<Bitmap> target
, final RequestOptions options
) {
if (mRequestManager
!= null
) {
if (options
!= null
) {
mRequestManager
.asBitmap().load(uri
).apply(options
).into(target
);
} else {
mRequestManager
.asBitmap().load(uri
).into(target
);
}
}
}
public void loadImageDrawable(final String uri
, final Target
<Drawable> target
) {
loadImageDrawable(uri
, target
, null
);
}
public void loadImageDrawable(final String uri
, final Target
<Drawable> target
, final RequestOptions options
) {
if (mRequestManager
!= null
) {
if (options
!= null
) {
mRequestManager
.asDrawable().load(uri
).apply(options
).into(target
);
} else {
mRequestManager
.asDrawable().load(uri
).into(target
);
}
}
}
public void loadImageFile(final String uri
, final Target
<File> target
) {
loadImageFile(uri
, target
, null
);
}
public void loadImageFile(final String uri
, final Target
<File> target
, final RequestOptions options
) {
if (mRequestManager
!= null
) {
if (options
!= null
) {
mRequestManager
.asFile().load(uri
).apply(options
).into(target
);
} else {
mRequestManager
.asFile().load(uri
).into(target
);
}
}
}
public void loadImageGif(final String uri
, final Target
<GifDrawable> target
) {
loadImageGif(uri
, target
, null
);
}
public void loadImageGif(final String uri
, final Target
<GifDrawable> target
, final RequestOptions options
) {
if (mRequestManager
!= null
) {
if (options
!= null
) {
mRequestManager
.asGif().load(uri
).apply(options
).into(target
);
} else {
mRequestManager
.asGif().load(uri
).into(target
);
}
}
}
public void cancelDisplayTask(final View view
) {
if (mRequestManager
!= null
&& view
!= null
) {
mRequestManager
.clear(view
);
}
}
public void cancelDisplayTask(final Target target
) {
if (mRequestManager
!= null
&& target
!= null
) {
mRequestManager
.clear(target
);
}
}
public void destroy() {
if (mRequestManager
!= null
) {
mRequestManager
.onDestroy();
}
}
public void pause() {
if (mRequestManager
!= null
) {
mRequestManager
.pauseAllRequests();
}
}
public void resume() {
if (mRequestManager
!= null
) {
mRequestManager
.resumeRequests();
}
}
public void stop() {
if (mRequestManager
!= null
) {
mRequestManager
.onStop();
}
}
public void start() {
if (mRequestManager
!= null
) {
mRequestManager
.onStart();
}
}
}
public static void clearDiskCache() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Glide
.get(sContext
).clearDiskCache();
} catch (Exception e
) {
LogPrintUtils
.eTag(TAG
, e
, "clearDiskCache");
}
}
}).start();
}
public static void clearMemoryCache() {
try {
Glide
.get(sContext
).clearMemory();
} catch (Exception e
) {
LogPrintUtils
.eTag(TAG
, e
, "clearMemoryCache");
}
}
public static void onLowMemory() {
try {
Glide
.get(sContext
).onLowMemory();
} catch (Exception e
) {
LogPrintUtils
.eTag(TAG
, e
, "onLowMemory");
}
}
public static File
getDiskCache() {
try {
return Glide
.getPhotoCacheDir(sContext
);
} catch (Exception e
) {
LogPrintUtils
.eTag(TAG
, e
, "getDiskCache");
}
return null
;
}
}