Glide框架实现图片加载和视频播放总结
来源:互联网 发布:比尔精英英语 知乎 编辑:程序博客网 时间:2024/06/03 17:09
Picasso的内存开销比glide要大,而且加载图片的速度要慢一些。
1.在listview或者recycleView中使用
listview:在getview方法中使用:
@Override public View getView(int position, View convertView, ViewGroup parent) { if (null == convertView) { //..... } Glide .with(context) .load(imageUrls[position]) .into(holder.imageView); return convertView; }
同理,recycleView中可以在Adapter的onBindViewHolder方法中使用。
我建议with()传参的时候传递Activity 和 Fragment给Glide,而不是Context。。将Activity/Fragment作为with()参数的好处是:图片加载会和Activity/Fragment的生命周期保持一致,比如Paused状态在暂停加载,在Resumed的时候又自动重新加载。
2.设置加载网络时等待的图片:
Glide .with(context) .load(UsageExampleListViewAdapter.eatFoodyImages[0]) .placeholder(R.mipmap.ic_launcher) // can also be a drawable .into(imageViewPlaceholder);
3.设置加载失败后的图片显示
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);
4.设置图片的缩放
//使用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);
5.加载gif动画
Glide .with( context ) .load( gifUrl ) .asGif() //判断加载的url资源是否为gif格式的资源 .error( R.drawable.full_cake ) .into( imageViewGif );
6.显示本地视频
String filePath = "/storage/emulated/0/Pictures/example_video.mp4";Glide .with( context ) .load( Uri.fromFile( new File( filePath ) ) ) .into( imageViewGifAsBitmap );
7.设置glide的缓存策略
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 缓存所有版本的图像(默认行为)
8.不将加载的资源放入ImageView而是获取资源的Bitmap对象:
//括号中的300,600代表宽和高但是未有作用SimpleTarget target = new SimpleTarget<Bitmap>(300,600) { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { //在这里对返回的bitmap进行处理 } }; Glide.with(MainActivity.this) .load(args[position]) .asBitmap() .into(target);
9.使用中的相关问题
①在列表中使用gilde的时候,会出现图片变形的情况,当刷新的时候才会正常显示,这个问题就是因为动画加载的过程中图片还没有下载下来导致的,这个时候把动画给禁止了就可以了,也可以把加载失败时候的图片给禁止掉,这样就可以直接加载出图片了,但是图片一定要可以下载下来.
.placeholder(R.drawable.icon_default).dontAnimate().into(iv);
1 2
- Glide框架实现图片加载和视频播放总结
- Android图片加载框架Glide使用总结
- Android图片加载框架Glide使用总结
- glide图片加载框架使用总结
- 图片加载框架Picasso和Glide
- 图片加载框架Glide
- 图片加载框架,Glide
- 加载图片框架Glide
- Glide图片加载框架
- 图片加载框架Glide解析
- 图片加载框架Glide解析
- 图片加载框架Glide解析
- Glide图片加载框架学习
- Android图片加载框架Glide
- android glide 图片加载框架
- 图片加载框架之Glide
- Android图片加载框架Glide
- Glide图片加载框架(转)
- 【APPGAMEKIT2】使用C++语言编写的UNO牌游戏
- 计算机组成简介
- ios多线程操作(一)—— 多线程基础与原理
- JavaScript模拟百度分页
- tango with django ch7 MTV
- Glide框架实现图片加载和视频播放总结
- LeetCode——023
- ios多线程操作(二)—— NSThread的应用
- 获取AppStore,APP信息
- Struts2 入门学习笔记(四)——输入校验
- Office 2016 安装的相关问题
- 项目管理之如何控制项目进度和质量
- ios多线程操作(三)—— 线程通讯
- Github建立自己的个人网站,不需要买域名啦!