Android中Glide(加载图片)的使用
来源:互联网 发布:淘宝买万艾可怎么购买 编辑:程序博客网 时间:2024/05/01 07:59
这次给大家介绍下Android中另外一种非常好用的工具,他也是用来加载图片的,Glide可以加载多样式的图片以及视频文件,可以展示视频的缩略图, 和Imageloader,Picasso,相比较,性能更加的健全,更好用,加载图片呈现多元化,我个人理解,它属于图片加载方面的最强者。
使用Glide结合列表的样式进行图片加载:
1) 如果使用的是ListView,可以直接在Adapter的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; }
2) 如果使用的是RecyclerView,可以在Adapter的onBindViewHolder方法中使用:
@Override public void onBindViewHolder(RVViewHolder holder, int position) { 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) 显示本地视频
String filePath = "/storage/emulated/0/Pictures/example_video.mp4";Glide .with( context ) .load( Uri.fromFile( new File( 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.LOWPriority.NORMALPriority.HIGHPriority.IMMEDIATE private void loadImageWithHighPriority() { Glide .with( context ) .load( mages[0] ) .priority( Priority.HIGH ) .into( imageViewHero );}private void loadImagesWithLowPriority() { 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代表宽和高但是未有作用
SimpleTarget target = new SimpleTarget<Bitmap>(300,600) { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 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'}
0 0
- Android中Glide(加载图片)的使用
- Android中图片加载框架Glide的使用
- Android Glide图片加载库的使用
- Android Glide图片加载库的使用
- Android Glide图片加载库的使用
- Android Glide图片加载库的使用
- Android 图片加载库 Glide 的使用
- Android 流行的网络图片加载库 之 使用 Glide 加载图片 (Google推荐的图片加载库Glide)
- Android 图片加载库Glide的使用(文章链接)
- Android 图片加载 Glide使用
- android 图片加载库 Glide 的使用过程中出现的问题
- Android主流的图片加载库的使用 - Glide
- android 图片加载库 Glide 的使用介绍
- Glide Android图片加载的利器---基本介绍和使用
- android 图片加载库 Glide 的使用介绍
- Android图片加载框架Glide的基本使用
- android 图片加载库 Glide 的使用介绍
- Android图片加载框架Glide的使用解析
- c#的委托(2)之调用实例化方法
- HTTP协议头及错误码详解
- 001-终端操作OC代码
- numpy数据类型
- 霍夫曼编码
- Android中Glide(加载图片)的使用
- mysql自身运行日志文件详解
- Git学习笔记整理
- 27. Remove Element [easy]
- Opencv3.0-python的那些事儿:(一)、Opencv的图像和视频处理基本用法
- Reverse String
- c#的委托(3)之多重委托
- TextView 中 android:maxEms="" ,maxLine="",maxlenght="";的区别
- gitlab环境配置