Glide库的封装使用
来源:互联网 发布:手机游戏编程培训 编辑:程序博客网 时间:2024/05/22 13:07
对Glide库不了解的朋友,可以先看看这篇文章 Glide图片加载库的使用
本库主要有3部分组成,分别是:Glide的配置类,Glide的加载类,Glide的加载监听接口.
配置类
package com.example.mchenys.httputilsdemo.image.glide.cofig;import android.graphics.Bitmap;import android.view.View;import com.bumptech.glide.Priority;import com.bumptech.glide.load.engine.DiskCacheStrategy;import com.bumptech.glide.load.resource.drawable.GlideDrawable;import com.bumptech.glide.request.animation.ViewPropertyAnimation;import com.bumptech.glide.request.target.AppWidgetTarget;import com.bumptech.glide.request.target.NotificationTarget;import com.bumptech.glide.request.target.SimpleTarget;import com.bumptech.glide.request.target.ViewTarget;/** * Created by mChenys on 2016/4/29. */public class ImageLoadConfig { public static final int CENTER_CROP = 0; public static final int FIT_CENTER = 1; private Integer placeHolderResId; //默认占位资源 private Integer errorResId; //错误时显示的资源 private boolean crossFade; //是否淡入淡出动画 private int crossDuration; //淡入淡出动画持续的时间 private OverrideSize size; //图片最终显示在ImageView上的宽高度像素 private int CropType = CENTER_CROP; //裁剪类型,默认为中部裁剪 private boolean asGif; //true,强制显示的是gif动画,如果url不是gif的资源,那么会回调error() private boolean asBitmap;//true,强制显示为常规图片,如果是gif资源,则加载第一帧作为图片 private boolean skipMemoryCache;//true,跳过内存缓存,默认false private DiskCache diskCacheStrategy; //硬盘缓存,默认为all类型 private LoadPriority prioriy; private float thumbnail;//设置缩略图的缩放比例0.0f-1.0f,如果缩略图比全尺寸图先加载完,就显示缩略图,否则就不显示 private String thumbnailUrl;//设置缩略图的url,如果缩略图比全尺寸图先加载完,就显示缩略图,否则就不显示 private SimpleTarget<Bitmap> simpleTarget; //指定simpleTarget对象,可以在Target回调方法中处理bitmap,同时该构造方法中还可以指定size private ViewTarget<? extends View, GlideDrawable> viewTarget;//指定viewTarget对象,可以是自定义View,该构造方法传入的view和通配符的view是同一个 private NotificationTarget notificationTarget; //设置通知栏加载大图片的target; private AppWidgetTarget appWidgetTarget;//设置加载小部件图片的target private Integer animResId;//图片加载完后的动画效果,在异步加载资源完成时会执行该动画。 private ViewPropertyAnimation.Animator animator; //在异步加载资源完成时会执行该动画。可以接受一个Animator对象 private boolean cropCircle;//圆形裁剪 private boolean roundedCorners;//圆角处理 private boolean grayscale;//灰度处理 private boolean blur;//高斯模糊处理 private boolean rotate;//旋转图片 private int rotateDegree;//默认旋转° private String tag; //唯一标识 /** * 硬盘缓存策略 */ public enum DiskCache { NONE(DiskCacheStrategy.NONE),//跳过硬盘缓存 SOURCE(DiskCacheStrategy.SOURCE),//仅仅保存原始分辨率的图片 RESULT(DiskCacheStrategy.RESULT),//仅仅缓存最终分辨率的图像(降低分辨率后的或者转换后的) ALL(DiskCacheStrategy.ALL);//缓存所有版本的图片,默认行为 private DiskCacheStrategy strategy; DiskCache(DiskCacheStrategy strategy) { this.strategy = strategy; } public DiskCacheStrategy getStrategy() { return strategy; } } /** * 加载优先级策略 */ public enum LoadPriority { LOW(Priority.LOW), NORMAL(Priority.NORMAL), HIGH(Priority.HIGH), IMMEDIATE(Priority.IMMEDIATE),; Priority priority; LoadPriority(Priority priority) { this.priority = priority; } public Priority getPriority() { return priority; } } private ImageLoadConfig(ImageLoadConfig.Builder builder) { this.placeHolderResId = builder.placeHolderResId; this.errorResId = builder.errorResId; this.crossFade = builder.crossFade; this.crossDuration = builder.crossDuration; this.size = builder.size; this.CropType = builder.CropType; this.asGif = builder.asGif; this.asBitmap = builder.asBitmap; this.skipMemoryCache = builder.skipMemoryCache; this.diskCacheStrategy = builder.diskCacheStrategy; this.thumbnail = builder.thumbnail; this.thumbnailUrl = builder.thumbnailUrl; this.simpleTarget = builder.simpleTarget; this.viewTarget = builder.viewTarget; this.notificationTarget = builder.notificationTarget; this.appWidgetTarget = builder.appWidgetTarget; this.animResId = builder.animResId; this.animator = builder.animator; this.prioriy = builder.prioriy; this.blur = builder.blur; this.cropCircle = builder.cropCircle; this.roundedCorners = builder.roundedCorners; this.grayscale = builder.grayscale; this.rotate =builder.rotate; this.rotateDegree = builder.rotateDegree; this.tag = tag; } /** *Builder类 */ public static class Builder { private Integer placeHolderResId; private Integer errorResId; private boolean crossFade; private int crossDuration; private OverrideSize size; private int CropType = CENTER_CROP; private boolean asGif; private boolean asBitmap; private boolean skipMemoryCache; private DiskCache diskCacheStrategy = DiskCache.ALL; private LoadPriority prioriy = LoadPriority.HIGH; private float thumbnail; private String thumbnailUrl; private SimpleTarget<Bitmap> simpleTarget; private ViewTarget<? extends View, GlideDrawable> viewTarget; private NotificationTarget notificationTarget; private AppWidgetTarget appWidgetTarget; private Integer animResId; private ViewPropertyAnimation.Animator animator; private boolean cropCircle; private boolean roundedCorners; private boolean grayscale; private boolean blur; private boolean rotate; private int rotateDegree =90; private String tag; public Builder setPlaceHolderResId(Integer placeHolderResId) { this.placeHolderResId = placeHolderResId; return this; } public Builder setErrorResId(Integer errorResId) { this.errorResId = errorResId; return this; } public Builder setCrossFade(boolean crossFade) { this.crossFade = crossFade; return this; } public Builder setCrossDuration(int crossDuration) { this.crossDuration = crossDuration; return this; } public Builder setSize(OverrideSize size) { this.size = size; return this; } public Builder setCropType(int cropType) { CropType = cropType; return this; } public Builder setAsGif(boolean asGif) { this.asGif = asGif; return this; } public Builder setAsBitmap(boolean asBitmap) { this.asBitmap = asBitmap; return this; } public Builder setSkipMemoryCache(boolean skipMemoryCache) { this.skipMemoryCache = skipMemoryCache; return this; } public Builder setDiskCacheStrategy(DiskCache diskCacheStrategy) { this.diskCacheStrategy = diskCacheStrategy; return this; } public Builder setPrioriy(LoadPriority prioriy) { this.prioriy = prioriy; return this; } public Builder setThumbnail(float thumbnail) { this.thumbnail = thumbnail; return this; } public Builder setThumbnailUrl(String thumbnailUrl) { this.thumbnailUrl = thumbnailUrl; return this; } public Builder setSimpleTarget(SimpleTarget<Bitmap> simpleTarget) { this.simpleTarget = simpleTarget; return this; } public Builder setViewTarget(ViewTarget<? extends View, GlideDrawable> viewTarget) { this.viewTarget = viewTarget; return this; } public Builder setNotificationTarget(NotificationTarget notificationTarget) { this.notificationTarget = notificationTarget; return this; } public Builder setAppWidgetTarget(AppWidgetTarget appWidgetTarget) { this.appWidgetTarget = appWidgetTarget; return this; } public Builder setAnimResId(Integer animResId) { this.animResId = animResId; return this; } public Builder setAnimator(ViewPropertyAnimation.Animator animator) { this.animator = animator; return this; } public Builder setCropCircle(boolean cropCircle) { this.cropCircle = cropCircle; return this; } public Builder setRoundedCorners(boolean roundedCorners) { this.roundedCorners = roundedCorners; return this; } public Builder setGrayscale(boolean grayscale) { this.grayscale = grayscale; return this; } public Builder setBlur(boolean blur) { this.blur = blur; return this; } public Builder setRotate(boolean rotate) { this.rotate = rotate; return this; } public Builder setRotateDegree(int rotateDegree) { this.rotateDegree = rotateDegree; return this; } public Builder setTag(String tag) { this.tag = tag; return this; } public ImageLoadConfig build() { return new ImageLoadConfig(this); } } public static Builder parseBuilder(ImageLoadConfig config) { Builder builder = new Builder(); builder.placeHolderResId = config.placeHolderResId; builder.errorResId = config.errorResId; builder.crossFade = config.crossFade; builder.crossDuration = config.crossDuration; builder.size = config.size; builder.CropType = config.CropType; builder.asGif = config.asGif; builder.asBitmap = config.asBitmap; builder.skipMemoryCache = config.skipMemoryCache; builder.diskCacheStrategy = config.diskCacheStrategy; builder.thumbnail = config.thumbnail; builder.thumbnailUrl = config.thumbnailUrl; builder.simpleTarget = config.simpleTarget; builder.viewTarget = config.viewTarget; builder.notificationTarget = config.notificationTarget; builder.appWidgetTarget = config.appWidgetTarget; builder.animResId = config.animResId; builder.animator = config.animator; builder.prioriy = config.prioriy; builder.cropCircle = config.cropCircle; builder.roundedCorners = config.roundedCorners; builder.grayscale = config.grayscale; builder.blur = config.blur; builder.rotate = config.rotate; builder.rotateDegree =config.rotateDegree; builder.tag = config.tag; return builder; } public Integer getPlaceHolderResId() { return placeHolderResId; } public Integer getErrorResId() { return errorResId; } public boolean isCrossFade() { return crossFade; } public int getCrossDuration() { return crossDuration; } public OverrideSize getSize() { return size; } public int getCropType() { return CropType; } public boolean isAsGif() { return asGif; } public boolean isAsBitmap() { return asBitmap; } public boolean isSkipMemoryCache() { return skipMemoryCache; } public DiskCache getDiskCacheStrategy() { return diskCacheStrategy; } public LoadPriority getPrioriy() { return prioriy; } public float getThumbnail() { return thumbnail; } public String getThumbnailUrl() { return thumbnailUrl; } public SimpleTarget<Bitmap> getSimpleTarget() { return simpleTarget; } public ViewTarget<? extends View, GlideDrawable> getViewTarget() { return viewTarget; } public NotificationTarget getNotificationTarget() { return notificationTarget; } public AppWidgetTarget getAppWidgetTarget() { return appWidgetTarget; } public Integer getAnimResId() { return animResId; } public ViewPropertyAnimation.Animator getAnimator() { return animator; } public boolean isCropCircle() { return cropCircle; } public boolean isRoundedCorners() { return roundedCorners; } public boolean isGrayscale() { return grayscale; } public boolean isBlur() { return blur; } public boolean isRotate() { return rotate; } public int getRotateDegree() { return rotateDegree; } public String getTag() { return tag; } /** * 图片最终显示在ImageView上的宽高像素 * Created by mChenys on 2016/4/29. */ public static class OverrideSize { private final int width; private final int height; public OverrideSize(int width, int height) { this.width = width; this.height = height; } public int getWidth() { return width; } public int getHeight() { return height; } }}
加载监听接口
有2个
public interface LoaderListener { void onSuccess(); void onError();}public interface BitmapLoadingListener { void onSuccess(Bitmap b); void onError();}
加载类
/** * Created by mChenys on 2016/4/29. */public class ImageLoader { //默认配置 public static ImageLoadConfig defConfig = new ImageLoadConfig.Builder(). setCropType(ImageLoadConfig.CENTER_CROP). setAsBitmap(true). setPlaceHolderResId(R.drawable.bg_loading). setErrorResId(R.drawable.bg_error). setDiskCacheStrategy(ImageLoadConfig.DiskCache.SOURCE). setPrioriy(ImageLoadConfig.LoadPriority.HIGH).build(); /** * 加载String类型的资源 * SD卡资源:"file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg"<p/> * assets资源:"file:///android_asset/f003.gif"<p/> * raw资源:"Android.resource://com.frank.glide/raw/raw_1"或"android.resource://com.frank.glide/raw/"+R.raw.raw_1<p/> * drawable资源:"android.resource://com.frank.glide/drawable/news"或load"android.resource://com.frank.glide/drawable/"+R.drawable.news<p/> * ContentProvider资源:"content://media/external/images/media/139469"<p/> * http资源:"http://img.my.csdn.net/uploads/201508/05/1438760757_3588.jpg"<p/> * https资源:"https://img.alicdn.com/tps/TB1uyhoMpXXXXcLXVXXXXXXXXXX-476-538.jpg_240x5000q50.jpg_.webp"<p/> * * @param view * @param imageUrl * @param config * @param listener */ public static void loadStringRes(ImageView view, String imageUrl, ImageLoadConfig config, LoaderListener listener) { load(view.getContext(), view, imageUrl, config, listener); } public static void loadFile(ImageView view, File file, ImageLoadConfig config, LoaderListener listener) { load(view.getContext(), view, file, config, listener); } public static void loadResId(ImageView view, Integer resourceId, ImageLoadConfig config, LoaderListener listener) { load(view.getContext(), view, resourceId, config, listener); } public static void loadUri(ImageView view, Uri uri, ImageLoadConfig config, LoaderListener listener) { load(view.getContext(), view, uri, config, listener); } public static void loadGif(ImageView view, String gifUrl, ImageLoadConfig config, LoaderListener listener) { load(view.getContext(), view, gifUrl, ImageLoadConfig.parseBuilder(config).setAsGif(true).build(), listener); } public static void loadTarget(Context context, Object objUrl, ImageLoadConfig config, final LoaderListener listener) { load(context, null, objUrl, config, listener); } private static void load(Context context, ImageView view, Object objUrl, ImageLoadConfig config, final LoaderListener listener) { if (null == objUrl) { throw new IllegalArgumentException("objUrl is null"); } else if (null == config) { config = defConfig; } try { GenericRequestBuilder builder = null; if (config.isAsGif()) {//gif类型 GifRequestBuilder request = Glide.with(context).load(objUrl).asGif(); if (config.getCropType() == ImageLoadConfig.CENTER_CROP) { request.centerCrop(); } else { request.fitCenter(); } builder = request; } else if (config.isAsBitmap()) { //bitmap 类型 BitmapRequestBuilder request = Glide.with(context).load(objUrl).asBitmap(); if (config.getCropType() == ImageLoadConfig.CENTER_CROP) { request.centerCrop(); } else { request.fitCenter(); } //transform bitmap if (config.isRoundedCorners()) { request.transform(new RoundedCornersTransformation(context, 50, 50)); } else if (config.isCropCircle()) { request.transform(new CropCircleTransformation(context)); } else if (config.isGrayscale()) { request.transform(new GrayscaleTransformation(context)); } else if (config.isBlur()) { request.transform(new BlurTransformation(context, 8, 8)); } else if (config.isRotate()) { request.transform(new RotateTransformation(context, config.getRotateDegree())); } builder = request; } else if (config.isCrossFade()) { // 渐入渐出动画 DrawableRequestBuilder request = Glide.with(context).load(objUrl).crossFade(); if (config.getCropType() == ImageLoadConfig.CENTER_CROP) { request.centerCrop(); } else { request.fitCenter(); } builder = request; } //缓存设置 builder.diskCacheStrategy(config.getDiskCacheStrategy().getStrategy()). skipMemoryCache(config.isSkipMemoryCache()). priority(config.getPrioriy().getPriority()); builder.dontAnimate(); if (null != config.getTag()) { builder.signature(new StringSignature(config.getTag())); } else { builder.signature(new StringSignature(objUrl.toString())); } if (null != config.getAnimator()) { builder.animate(config.getAnimator()); } else if (null != config.getAnimResId()) { builder.animate(config.getAnimResId()); } if (config.getThumbnail() > 0.0f) { builder.thumbnail(config.getThumbnail()); } if (null != config.getErrorResId()) { builder.error(config.getErrorResId()); } if (null != config.getPlaceHolderResId()) { builder.placeholder(config.getPlaceHolderResId()); } if (null != config.getSize()) { builder.override(config.getSize().getWidth(), config.getSize().getHeight()); } if (null != listener) { setListener(builder, listener); } if (null != config.getThumbnailUrl()) { BitmapRequestBuilder thumbnailRequest = Glide.with(context).load(config.getThumbnailUrl()).asBitmap(); builder.thumbnail(thumbnailRequest).into(view); } else { setTargetView(builder, config, view); } } catch (Exception e) { view.setImageResource(config.getErrorResId()); } } private static void setListener(GenericRequestBuilder request, final LoaderListener listener) { request.listener(new RequestListener() { @Override public boolean onException(Exception e, Object model, Target target, boolean isFirstResource) { if (!e.getMessage().equals("divide by zero")) { listener.onError(); } return false; } @Override public boolean onResourceReady(Object resource, Object model, Target target, boolean isFromMemoryCache, boolean isFirstResource) { listener.onSuccess(); return false; } }); } private static void setTargetView(GenericRequestBuilder request, ImageLoadConfig config, ImageView view) { //set targetView if (null != config.getSimpleTarget()) { request.into(config.getSimpleTarget()); } else if (null != config.getViewTarget()) { request.into(config.getViewTarget()); } else if (null != config.getNotificationTarget()) { request.into(config.getNotificationTarget()); } else if (null != config.getAppWidgetTarget()) { request.into(config.getAppWidgetTarget()); } else { request.into(view); } } /** * 加载bitmap * * @param context * @param url * @param listener */ public static void loadBitmap(Context context, Object url, final BitmapLoadingListener listener) { if (url == null) { if (listener != null) { listener.onError(); } } else { Glide.with(context). load(url). asBitmap(). diskCacheStrategy(DiskCacheStrategy.NONE). dontAnimate(). into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { if (listener != null) { listener.onSuccess(resource); } } }); } } /** * 高优先级加载 * * @param url * @param imageView * @param listener */ public static void loadImageWithHighPriority(Object url, ImageView imageView, final LoaderListener listener) { if (url == null) { if (listener != null) { listener.onError(); } } else { Glide.with(imageView.getContext()). load(url). asBitmap(). priority(Priority.HIGH). dontAnimate(). listener(new RequestListener<Object, Bitmap>() { @Override public boolean onException(Exception e, Object model, Target<Bitmap> target, boolean isFirstResource) { if (null != listener) { listener.onError(); } return false; } @Override public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) { if (null != listener) { listener.onSuccess(); } return false; } }).into(imageView); } } /** * 取消所有正在下载或等待下载的任务。 */ public static void cancelAllTasks(Context context) { Glide.with(context).pauseRequests(); } /** * 恢复所有任务 */ public static void resumeAllTasks(Context context) { Glide.with(context).resumeRequests(); } /** * 清除磁盘缓存 * * @param context */ public static void clearDiskCache(final Context context) { new Thread(new Runnable() { @Override public void run() { Glide.get(context).clearDiskCache(); } }).start(); } /** * 清除所有缓存 * @param context */ public static void cleanAll(Context context) { clearDiskCache(context); Glide.get(context).clearMemory(); } /** * 获取缓存大小 * * @param context * @return */ public static synchronized long getDiskCacheSize(Context context) { long size = 0L; File cacheDir = PathUtils.getDiskCacheDir(context, CacheConfig.IMG_DIR); if (cacheDir != null && cacheDir.exists()) { File[] files = cacheDir.listFiles(); if (files != null) { File[] arr$ = files; int len$ = files.length; for (int i$ = 0; i$ < len$; ++i$) { File imageCache = arr$[i$]; if (imageCache.isFile()) { size += imageCache.length(); } } } } return size; } public static void clearTarget(Context context, String uri) { if (SimpleGlideModule.cache != null && uri != null) { SimpleGlideModule.cache.delete(new StringSignature(uri)); Glide.get(context).clearMemory(); } } public static void clearTarget(View view) { Glide.clear(view); } public static File getTarget(Context context, String uri) { return SimpleGlideModule.cache != null && uri != null ? SimpleGlideModule.cache.get(new StringSignature(uri)) : null; }}
测试类
/** * Created by mChenys on 2016/4/30. */public class GlideActivity extends AppCompatActivity implements View.OnClickListener { private ImageView mTargetView; private String url = "http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png"; private String gif = "http://image24.360doc.com/DownloadImg/2011/03/0513/9707070_3.gif"; private String thumbnailUrl = "http://img.my.csdn.net/uploads/201407/26/1406383299_1976.jpg"; private File jpgFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/droid4xshare/test.jpg"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_glide); mTargetView = (ImageView) findViewById(R.id.iv_target); findViewById(R.id.btn_load_bimap).setOnClickListener(this); findViewById(R.id.btn_del_bimap).setOnClickListener(this); findViewById(R.id.btn_load_gif).setOnClickListener(this); findViewById(R.id.btn_load_file).setOnClickListener(this); findViewById(R.id.btn_load_resource).setOnClickListener(this); findViewById(R.id.btn_load_animid).setOnClickListener(this); findViewById(R.id.btn_load_anim).setOnClickListener(this); findViewById(R.id.btn_load_thumbnailUrl).setOnClickListener(this); findViewById(R.id.btn_load_thumbnailSize).setOnClickListener(this); Glide.get(GlideActivity.this).clearMemory(); new Thread(new Runnable() { @Override public void run() { Glide.get(GlideActivity.this).clearDiskCache(); } }).start(); } @Override public void onClick(View v) { ImageLoadConfig.OverrideSize size = new ImageLoadConfig.OverrideSize(100, 100); switch (v.getId()) { case R.id.btn_del_bimap://删除已加载过url的图片 ImageLoader.clearTarget(this, url); break; case R.id.btn_load_bimap: //加载网络图片 ImageLoader.loadStringRes(mTargetView, url, ImageLoader.defConfig, mListener); break; case R.id.btn_load_gif://加载网络的gif ImageLoadConfig config2 = ImageLoadConfig.parseBuilder(ImageLoader.defConfig).setAsGif(true). setSkipMemoryCache(true). setDiskCacheStrategy(ImageLoadConfig.DiskCache.NONE). build(); ImageLoader.loadGif(mTargetView, gif, config2, mListener); break; case R.id.btn_load_file://加载本地图片 ImageLoadConfig config3 = ImageLoadConfig.parseBuilder(ImageLoader.defConfig). setSkipMemoryCache(true). setDiskCacheStrategy(ImageLoadConfig.DiskCache.NONE).setSize(size). build(); ImageLoader.loadFile(mTargetView, jpgFile, config3, mListener); break; case R.id.btn_load_resource://加载本地资源 ImageLoadConfig config4 = ImageLoadConfig.parseBuilder(ImageLoader.defConfig). setSkipMemoryCache(true). setDiskCacheStrategy(ImageLoadConfig.DiskCache.NONE) .build(); ImageLoader.loadResId(mTargetView, R.drawable.dog, config4, mListener); break; case R.id.btn_load_animid://加载资源动画 ImageLoadConfig config5 = ImageLoadConfig.parseBuilder(ImageLoader.defConfig). setAnimResId(R.anim.left_in). setSkipMemoryCache(true). setDiskCacheStrategy(ImageLoadConfig.DiskCache.NONE). setAsGif(true).build(); ImageLoader.loadResId(mTargetView, R.drawable.smail, config5, mListener); break; case R.id.btn_load_anim://加载属性动画 ViewPropertyAnimation.Animator animationObject = new ViewPropertyAnimation.Animator() { @Override public void animate(View view) { ObjectAnimator moveIn = ObjectAnimator.ofFloat(view, "translationX", -500f, 0f); ObjectAnimator rotate = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f); ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(view, "alpha", 1f, 0f, 1f); ObjectAnimator moveTop = ObjectAnimator.ofFloat(view, "translationY", 0f, -2000, 0f); AnimatorSet animSet = new AnimatorSet(); animSet.play(rotate).with(fadeInOut).after(moveIn).before(moveTop); animSet.setDuration(5000); animSet.start(); } }; ImageLoadConfig config6 = ImageLoadConfig.parseBuilder(ImageLoader.defConfig). setAnimator(animationObject). setSkipMemoryCache(true). setDiskCacheStrategy(ImageLoadConfig.DiskCache.NONE). setAsGif(true). build(); ImageLoader.loadResId(mTargetView, R.drawable.smail, config6, mListener); break; case R.id.btn_load_thumbnailUrl://先加载缩略图片,再显示原图 ImageLoadConfig config7 = ImageLoadConfig.parseBuilder(ImageLoader.defConfig). setSkipMemoryCache(true). setDiskCacheStrategy(ImageLoadConfig.DiskCache.NONE). setThumbnailUrl(thumbnailUrl) .build(); ImageLoader.loadStringRes(mTargetView, url, config7, mListener); break; case R.id.btn_load_thumbnailSize: ImageLoadConfig config8 = ImageLoadConfig.parseBuilder(ImageLoader.defConfig). setSkipMemoryCache(true). setDiskCacheStrategy(ImageLoadConfig.DiskCache.NONE). setThumbnail(0.7f) .build(); ImageLoader.loadStringRes(mTargetView, url, config8, mListener); break; } } private LoaderListener mListener = new LoaderListener() { @Override public void onSuccess() { System.out.println("onSuccess()"); } @Override public void onError() { System.out.println("onError()"); } };}
4 0
- Glide库的封装使用
- Glide二次封装库的使用
- Glide V4的封装使用
- Glide的封装和使用总结
- glide的简单封装
- [安卓开发] Glide图片加载库的简单封装使用
- 基于Glide的二次封装
- Glide的简单封装GlideUtils
- Glide的简单封装GlideUtils
- Google图片加载库Glide的简单封装GlideUtils
- Google图片加载库Glide的简单封装GlideUtils
- 【封装】图片加载框架Glide使用
- Glide的图片加载库的使用
- Glide图片加载库的使用
- Glide图片加载库的使用
- Glide图片加载库的使用
- Android Glide图片加载库的使用
- Android Glide图片加载库的使用
- 剑指offer(五十五)之表示数值的字符串
- 关于闭包
- 第一章 简介和TCP/IP
- Android Studio自定义模板 写页面竟然可以如此轻松
- 欢迎使用CSDN-markdown编辑器
- Glide库的封装使用
- Making Quick macroScripts in 3DS Max
- 文件上传漏洞常见利用方式分析
- SHELL编程之执行过程
- PHP学习笔记-数组
- java学习笔记之Socket
- java中interrupt、join、sleep、notify、notifyAll、wait详解
- Android 刷机,获取root
- 安装了VS2015之后新建项目出错