Android常用网络图片加载框架示例
Posted 事在人为,幸福从不抱怨开始!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android常用网络图片加载框架示例相关的知识,希望对你有一定的参考价值。
- Picasso:
Github地址:https://github.com/square/picasso, 最新版本是2.71828,在androidStudio中gradle文件中配置:
compile 'com.squareup.picasso:picasso:2.71828'
使用:
/**
* 除了网络url,其它几种需要加上对应前缀,file文件路径前缀:file:
* content 添加前缀:content: ,Android Resource 添加:android.resource:
* @param imageView
*/
private void testPicasso(ImageView imageView)
Picasso.get() //之前的版本是用Picasso.with(context)
.load("url")//load 方法加载图片:可以是网络图片url或者file 路径或者content资源或者Android Resource。
.centerCrop()//设置scaleType为centerCrop,充满ImageView 的边界,居中裁剪
.placeholder(R.mipmap.ic_launcher)//网络请求还没有完成时显示的本地图片
.error(R.mipmap.ic_launcher)//网络请求错误时显示的本地图片
.resize(400,300)//设置图片尺寸
.onlyScaleDown()//当调用了resize 方法设置图片尺寸时,调用onlyScaleDown 方法,只有当原始图片的尺寸大于我们指定的尺寸时,resize才起作用
.fit()//fit 它会自动测量我们的View的大小,然后内部调用reszie方法把图片裁剪到View的大小(fit 还是会出现拉伸扭曲的情况,因此最好配合前面的centerCrop使用)
.tag("tag")//请求设置tag
.rotate(60)//设置图片旋转角度(图片在显示前,有个旋转的动画效果)
.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE) //设置内存缓存策略为不缓存
.networkPolicy(NetworkPolicy.NO_CACHE,NetworkPolicy.NO_STORE)//设置磁盘缓存策略为不缓存
.into(imageView);//显示到指定的控件上
- Glide
开源地地址:https://github.com/bumptech/glide
AndroidStudio中gradle文件中配置:
dependencies
//最新版本4.8.0
compile 'com.github.bumptech.glide:glide:3.7.0'
使用:
public void loadImage(ImageView imageView)
Glide.with(getApplicationContext()) // 指定Context
.load(url)// 指定图片的URL
.placeholder(R.mipmap.ic_launcher)// 指定图片未成功加载前显示的图片
.error(R.mipmap.ic_launcher)// 指定图片加载失败显示的图片
.override(300, 300)//指定图片的尺寸
.fitCenter()//指定图片缩放类型为
.centerCrop()// 指定图片缩放类型为
.skipMemoryCache(true)// 跳过内存缓存
.diskCacheStrategy(DiskCacheStrategy.NONE)//跳过磁盘缓存
.diskCacheStrategy(DiskCacheStrategy.SOURCE)//仅仅只缓存原来的全分辨率的图像
.diskCacheStrategy(DiskCacheStrategy.RESULT)//仅仅缓存最终的图像
.diskCacheStrategy(DiskCacheStrategy.ALL)//缓存所有版本的图像
.priority(Priority.HIGH)//指定优先级.Glide将会用他们作为一个准则,并尽可能的处理这些请求,但是它不能保证所有的图片都会按照所要求的顺序加载。优先级排序:IMMEDIATE > HIGH > NORMAL > LOW
.into(imageView);//指定显示图片的Imageview
Github上最新版本使用的代码是:
GlideApp//把之前的Glide换成了GlideApp
.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.into(myImageView);
3.Fresco
提供指定控件可供加载网络图片及本地图片,支持gif格式图片。
框架地址:https://github.com/facebook/fresco
官方使用文档:https://www.fresco-cn.org/docs/index.html
个人推荐博客:https://blog.csdn.net/jxf_access/article/details/79099396
首先在自定义的Application中onCreate方法中初始化框架:
public class GlobalApp extends Application
@Override
public void onCreate()
super.onCreate();
//初始化Fresco
Fresco.initialize(this);
第二步:在需要加载图片的页面布局中添加控件:
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/fresco_iv"
android:layout_width="100dp"
android:layout_height="100dp"
fresco:placeholderImage="@drawable/my_drawable"
/>
第三步:代码中实现:
Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.fresco_iv);
draweeView.setImageURI(uri);
-
Android-Universal-Image-Loader框架
这个框架出现非常早,但是作者已经停止更新了。
开源地址:https://github.com/nostra13/Android-Universal-Image-Loader
参考博客: https://www.cnblogs.com/zqyj-y/p/5941650.html -
Volley框架
谷歌出品:https://github.com/google/volley,网络请求框架,也带有加载网络图片的控件供开发使用。
参考博客:https://blog.csdn.net/little_shengsheng/article/details/51324293
以上是关于Android常用网络图片加载框架示例的主要内容,如果未能解决你的问题,请参考以下文章