android 对glide封装,Glide库的封装使用

本文详细介绍了如何对Glide库进行封装,包括配置类、加载类和加载监听接口的创建。通过示例代码展示了如何设置各种加载选项,如占位符、动画效果、裁剪类型等,以及如何在不同场景下使用封装好的Glide进行图片加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对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 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 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 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 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'

* assets资源:'file:///android_asset/f003.gif'

* raw资源:'Android.resource://com.frank.glide/raw/raw_1'或'android.resource://com.frank.glide/raw/'+R.raw.raw_1

* drawable资源:'android.resource://com.frank.glide/drawable/news'或load'android.resource://com.frank.glide/drawable/'+R.drawable.news

* ContentProvider资源:'content://media/external/images/media/139469'

* http资源:'https://img-my.youkuaiyun.com/uploads/201508/05/1438760757_3588.jpg'

* https资源:'https://img.alicdn.com/tps/TB1uyhoMpXXXXcLXVXXXXXXXXXX-476-538.jpg_240x5000q50.jpg_.webp'

*

* @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() {

@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() {

@Override

public boolean onException(Exception e, Object model, Target target, boolean isFirstResource) {

if (null != listener) {

listener.onError();

}

return false;

}

@Override

public boolean onResourceReady(Bitmap resource, Object model, Target 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 = 'https://img-my.youkuaiyun.com/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()');

}

};

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值