Android开发Android知识Android开发

Android图片加载框架Glide用法,手把手教你加载图片和下

2017-08-22  本文已影响0人  杰克船长爱萝莉

1在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫Glide的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。现在这款框架非常的火,再次提供给大家使用流程。

1 导入  简单粗暴

2  进行封装

packagecom.fufeng.util;

importandroid.content.Context;

importandroid.widget.ImageView;

importcom.bumptech.glide.Glide;

importcom.bumptech.glide.load.resource.drawable.GlideDrawable;

importcom.bumptech.glide.request.RequestListener;

importjp.wasabeef.glide.transformations.BlurTransformation;

/**

* Glide图片加载工具类

* Created by limoran on 2017/3/14.

*/

public classGlideUtils {

/**

*默认加载图片

*@parammContext

*@parampath

*@paramimageView

*/

public static voidloadImageView(Context mContext, String path, ImageView imageView){

Glide.with(mContext).load(path).into(imageView);

}

/**

*带默认图片的加载方式

*@parammContext

*@parampath

*@parammImageView

*@paramlodingImage

*@paramerrorImageView

*/

public static voidloadImageView(Context mContext, String path, ImageView mImageView,intlodingImage,interrorImageView) {

Glide.with(mContext).load(path).placeholder(lodingImage).error(errorImageView).into(mImageView);

}

/**

*加载指定大小的图片

*@parammContext

*@parampath

*@paramwidth

*@paramheight

*@parammImageView

*/

public static voidloadImageView(Context mContext, String path,intwidth,intheight, ImageView mImageView) {

Glide.with(mContext).load(path).override(width, height).into(mImageView);

}

/**

*加载gif图

*@parammContext

*@parampath

*@parammImageView

*/

public static voidloadImageViewGif(Context mContext, String path, ImageView mImageView) {

Glide.with(mContext).load(path).asGif().into(mImageView);

}

/**

*加载crop模式

*@parammContext

*@parampath

*@parammImageView

*/

public static voidloadImageViewCrop(Context mContext, String path, ImageView mImageView) {

Glide.with(mContext).load(path).centerCrop().into(mImageView);

}

/**

*图片加载带监听接口 方便监听异常来源

*@parammContext

*@parampath

*@parammImageView

*@paramrequstlistener

*/

public static voidloadImageView(Context mContext, String path, ImageView mImageView, RequestListener requstlistener) {

Glide.with(mContext).load(path).listener(requstlistener).into(mImageView);

}

/**

*清理图片内存缓存

*@parammContext

*/

public static voidGuideClearMemory(Context mContext) {

//清理内存缓存  可以在UI主线程中进行

Glide.get(mContext).clearMemory();

}

/**

*模糊图片

*@parammContext

*@parampath

*@parammImageView

*/

public static voidfuzzyLoadImageView(Context mContext,String path,ImageView mImageView){

Glide.with(mContext)

.load(path)

.bitmapTransform(newBlurTransformation(mContext,25,4))// “23”:设置模糊度(在0.0到25.0之间),默认”25";"4":图片缩放比例,默认“1”。

.into(mImageView);

}

}

这个是个封装好的实体类,以上十几款比较常用的加载方式 如加载固定大小图片,加载圆形图片(他自己给你裁剪),加载成毛玻璃央视的,支持的很多,还有一些动态图,非常的多。具体需求可以去官方查看指定的文档,加载图片的时候只需要传入指定的imageview的对象,mcontext,还有图片路径即可,非常简单。还有如果是加载高清长图也可以用Glide非常的简单,不过需要你把图片先要下载到本地再去进行glide加载,如下是加载高清长图的过程,最后给大家推荐一个高清长图控件  com.davemorrissey.labs:subsampling-scale-image-view:3.5.0,导入即可使用,具体请百度。

finalFile downDir = Environment.getExternalStorageDirectory();

//使用Glide下载图片,保存到本地

Glide.with(this)

.load(imageUrl)

.asBitmap()

.into(newSimpleTarget() {

@Override

public voidonResourceReady(Bitmap resource, GlideAnimation glideAnimation) {

File file =newFile(downDir,"/Glide/");

if(!file.exists()) {

try{

file.createNewFile();

}catch(IOException e) {

e.printStackTrace();

}

}

FileOutputStream fout =null;

try{

//保存图片

fout =newFileOutputStream(file);

resource.compress(Bitmap.CompressFormat.JPEG,100, fout);

//将保存的地址给SubsamplingScaleImageView,这里注意设置ImageViewState

scaleImageView.setImage(ImageSource.uri(file.getAbsolutePath()),newImageViewState(0.5F,newPointF(0,0),0));

}catch(FileNotFoundException e) {

e.printStackTrace();

}finally{

try{

if(fout !=null) fout.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}

});

以上就是为大家带来的Glide加载图片的随笔。。。喜欢的点一波关注哦

上一篇下一篇

猜你喜欢

热点阅读