/**
* @author Created by qlang on 2017/9/7.
*/
public class ImageLoader {
public interface BitmapListener {
void onCall(Bitmap bitmap);
}
public static <T extends ImageView> void loadImg(Context context, String id, byte[] bytes, T imageView) {
if (null == imageView) return;
Glide.with(context).load(bytes, id)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.dontAnimate()
.into(imageView);
}
public static <T extends ImageView> void loadImg(Context context, String url, T imageView) {
Glide.with(context).load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.dontAnimate()
.into(imageView);
}
public static <T extends ImageView> void loadImg(Context context, String url, T imageView, int defaultImageResId, int errImageResId) {
Glide.with(context).load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(defaultImageResId)
.error(errImageResId)
.crossFade()
.into(imageView);
}
public static void loadImg(Context context, String url, final BitmapListener listener) {
Glide.with(context).load(url)
.asBitmap()
.format(DecodeFormat.PREFER_ARGB_8888)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
if (null != listener) listener.onCall(resource);
}
});
}
}
kotlin版
/**
* @author Created by qlang on 2017/7/19.
*/
class ImageLoader {
interface BitmapListener {
fun onCall(bitmap: Bitmap?)
}
companion object {
fun <T : ImageView> loadImg(context: Context, id: String, bytes: ByteArray, imageView: T?) {
if (null == imageView) return
Glide.with(context).load(bytes, id)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.dontAnimate()
.into(imageView)
}
fun <T : ImageView> loadImg(context: Context, url: String, imageView: T?) {
loadImg(context, url, imageView, R.mipmap.ic_default_img, R.mipmap.ic_default_img)
}
fun <T : ImageView> loadBigImg(context: Context, url: String, imageView: T?) {
imageView ?: return
Glide.with(context).load(url)
.asBitmap()
.format(DecodeFormat.PREFER_ARGB_8888)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(R.mipmap.ic_default_img)
.error(R.mipmap.ic_default_img)
.into(imageView)
}
fun <T : ImageView> loadImg(context: Context, url: String, imageView: T?, defaultImageResId: Int, errImageResId: Int) {
imageView ?: return
Glide.with(context).load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(defaultImageResId)
.error(errImageResId)
// .dontAnimate()
.crossFade().into(imageView)
}
fun loadImg(context: Context, url: String, listener: (Bitmap?) -> Unit) {
Glide.with(context).load(url)
.asBitmap()
.format(DecodeFormat.PREFER_ARGB_8888)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(object : SimpleTarget<Bitmap>() {
override fun onResourceReady(resource: Bitmap?, glideAnimation: GlideAnimation<in Bitmap>?) {
listener(resource)
}
})
}
fun loadImg(context: Context, url: String, listener: BitmapListener?) {
Glide.with(context).load(url)
.asBitmap()
.format(DecodeFormat.PREFER_ARGB_8888)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(object : SimpleTarget<Bitmap>() {
override fun onResourceReady(resource: Bitmap?, glideAnimation: GlideAnimation<in Bitmap>?) {
listener?.onCall(resource)
}
})
}
}
}
fun ImageView.loadImg(url: String, defImgId: Int = R.mipmap.ic_default_img, errImgId: Int = R.mipmap.ic_default_img)
= ImageLoader.loadImg(this.context, url, this, defImgId, errImgId)
fun ImageView.loadImg(id: String, bytes: ByteArray) = ImageLoader.loadImg(this.context, id, bytes, this)
fun ImageView.loadImg(block: () -> Bitmap?) = this.setImageBitmap(block())