美文网首页Android开发Android知识Android开发
Android图片加载框架Glide用法,手把手教你加载图片和下

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

作者: 杰克船长爱萝莉 | 来源:发表于2017-08-22 14:52 被阅读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加载图片的随笔。。。喜欢的点一波关注哦

    相关文章

      网友评论

        本文标题:Android图片加载框架Glide用法,手把手教你加载图片和下

        本文链接:https://www.haomeiwen.com/subject/uklldxtx.html