美文网首页
Glide的使用

Glide的使用

作者: Victory_IT | 来源:发表于2016-11-22 23:34 被阅读0次

    目录:

    添加依赖:compile'com.github.bumptech.glide:glide:3.7.0'

    使用Glide结合列表的样式进行图片加载

    如果使用的是RecyclerView,可以在Adapter的onBindViewHolder方法中使用

    当加载网络图片时,由于加载过程中图片未能及时显示,此时可能需要设置等待时的图片,通过placeHolder()方法

    当加载图片失败时,通过error(Drawable drawable)方法设置加载失败后的图片显示

    图片的缩放,centerCrop()和fitCenter()

    显示gif动画

    显示本地视频

    缓存策略

    优先级,设置图片加载的顺序

    当不需要将加载的资源直接放入到ImageView中而是想获取资源的Bitmap对象

    集成网络栈(okHttp,Volley)

    1.使用Glide结合列表的样式进行图片加载:

    1)如果使用的是ListView,可以直接在Adapter的getView方法中使用:

    @Override

    publicViewgetView(intposition,ViewconvertView,ViewGroupparent){

    if(null==convertView){

    //.....

    }

    Glide

    .with(context)

    .load(imageUrls[position])

    .into(holder.imageView);

    returnconvertView;

    }

    2)如果使用的是RecyclerView,可以在Adapter的onBindViewHolder方法中使用:

    @Override

    publicvoidonBindViewHolder(RVViewHolderholder,intposition){

    Glide.with(MainActivity.this)

    .load(args[position])

    .into(holder.imageView);

    }

    3)当加载网络图片时,由于加载过程中图片未能及时显示,此时可能需要设置等待时的图片,通过placeHolder()方法:

    Glide

    .with(context)

    .load(UsageExampleListViewAdapter.eatFoodyImages[0])

    .placeholder(R.mipmap.ic_launcher)// can also be a drawable

    .into(imageViewPlaceholder);

    4)当加载图片失败时,通过error(Drawable drawable)方法设置加载失败后的图片显示:

    Glide

    .with(context)

    .load("http://futurestud.io/non_existing_image.png")

    .error(R.mipmap.future_studio_launcher)// will be displayed if the image cannot be loaded

    .into(imageViewError);

    5)图片的缩放,centerCrop()和fitCenter():

    //使用centerCrop是利用图片图填充ImageView设置的大小,如果ImageView的

    //Height是match_parent则图片就会被拉伸填充

    Glide.with(MainActivity.this)

    .load(args[position])

    .centerCrop()

    .into(holder.imageView);

    //使用fitCenter即缩放图像让图像都测量出来等于或小于 ImageView 的边界范围

    //该图像将会完全显示,但可能不会填满整个 ImageView。

    Glide.with(MainActivity.this)

    .load(args[position])

    .fitCenter()

    .into(holder.imageView);

    6)显示gif动画:

    Glide

    .with(context)

    .load(gifUrl)

    .asGif()//判断加载的url资源是否为gif格式的资源

    .error(R.drawable.full_cake)

    .into(imageViewGif);

    7)显示本地视频

    StringfilePath="/storage/emulated/0/Pictures/example_video.mp4";

    Glide

    .with(context)

    .load(Uri.fromFile(newFile(filePath)))

    .into(imageViewGifAsBitmap);

    8)缓存策略:

    Glide

    .with(context)

    .load(Images[0])

    .skipMemoryCache(true)//跳过内存缓存

    .into(imageViewInternet);

    Glide

    .with(context)

    .load(images[0])

    .diskCacheStrategy(DiskCacheStrategy.NONE)//跳过硬盘缓存

    .into(imageViewInternet);

    DiskCacheStrategy.NONE什么都不缓存

    DiskCacheStrategy.SOURCE仅仅只缓存原来的全分辨率的图像

    DiskCacheStrategy.RESULT仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)

    DiskCacheStrategy.ALL缓存所有版本的图像(默认行为

    9)优先级,设置图片加载的顺序:

    Priority.LOW

    Priority.NORMAL

    Priority.HIGH

    Priority.IMMEDIATE

    privatevoidloadImageWithHighPriority(){

    Glide

    .with(context)

    .load(mages[0])

    .priority(Priority.HIGH)

    .into(imageViewHero);

    }

    privatevoidloadImagesWithLowPriority(){

    Glide

    .with(context)

    .load(images[1])

    .priority(Priority.LOW)

    .into(imageViewLowPrioLeft);

    Glide

    .with(context)

    .load(images[2])

    .priority(Priority.LOW)

    .into(imageViewLowPrioRight);

    }

    10)当不需要将加载的资源直接放入到ImageView中而是想获取资源的Bitmap对象:

    //括号中的300,600代表宽和高但是未有作用

    SimpleTargettarget=newSimpleTarget(300,600){

    @Override

    publicvoidonResourceReady(Bitmapresource,GlideAnimationglideAnimation){

    holder.imageView.setImageBitmap(resource);

    }

    };

    Glide.with(MainActivity.this)

    .load(args[position])

    .asBitmap()

    .into(target);

    11)集成网络栈(okHttp,Volley):

    dependencies{

    // your other dependencies

    // ...

    // Glide

    compile'com.github.bumptech.glide:glide:3.6.1'

    // Glide's OkHttp Integration

    compile'com.github.bumptech.glide:okhttp-integration:1.3.1@aar'

    compile'com.squareup.okhttp:okhttp:2.5.0'

    }

    dependencies{

    // your other dependencies

    // ...

    // Glide

    compile'com.github.bumptech.glide:glide:3.6.1'

    // Glide's Volley Integration

    compile'com.github.bumptech.glide:volley-integration:1.3.1@aar'

    compile'com.mcxiaoke.volley:library:1.0.8'

    }

    相关文章

      网友评论

          本文标题:Glide的使用

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