Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.
ImageLoader的内部使用ImageRequest来实现,它的构造器可以传入一个ImageCache缓存形参,实现了图片缓存的功能,同时还可以过滤重复链接,避免重复发送请求。
下面是ImageLoader加载图片的实现方法:

用一个类来编写图片加载和缓存的相关操作:例如:ImageWorkerManager

初始化全局图片缓存

private void init(Context context) {
mQueue = Volley.newRequestQueue(context);
ImageCache.ImageCacheParams cacheParams = new ImageCache.ImageCacheParams(context,
FileManager.CACHE_IMAGE_PATH_NEW);
cacheParams.setMemCacheSizePercent(context, 0.2f);
imageCache = new ImageCache(cacheParams);
mImageLoader = new ImageLoader(mQueue, imageCache);
}

加载图片

    public void loadCommonImage(String coverUrl, ImageView imageView, int loadingDrawableId, int defaultDrawableId,
int width, int height) {//可以通过width,height来设置图片的最大宽度和高度,超过后volley会自动压缩。
if (coverUrl == null) {
coverUrl = "";
} com.android.volley.plus.ImageCache cache = getImageCache();
if (cache.getBitmapFromMemCache(coverUrl) != null) {
imageView.setImageBitmap(cache.getBitmapFromMemCache(coverUrl));
} else {
ImageLoader.ImageContainer container = getImageLoader().get(coverUrl,
TransitionImageListener.obtain(imageView, loadingDrawableId, defaultDrawableId), width, height);
imageView.setTag(container);
}
}

在Activity中的应用:

 ImageWorkerManager.getInstance(getActivity()).loadCommonImage(Utils.getPhotoUrl(mUser.getAvatar()), mAvatar,
R.drawable.img_vip, R.drawable.img_vip, mAvatar.getWidth(), mAvatar.getHeight());

注意:volley只适合小数据,小图片。用volley上传图像什么的要注意。如果图片过大最好要压缩。

使用Volley框架中的ImageLoader来异步的加载图片的更多相关文章

  1. Android框架Volley之:利用Imageloader和NetWorkImageView加载图片

    首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...

  2. swift 异步加载图片(第三方框架ImageLoader)

    import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...

  3. 利用Volley封装好的图片缓存处理加载图片

    Volley 工具箱中提供了一种通过 DiskBasedCache 类实现的标准缓存.这个类能够缓存文件到磁盘的指定目录.但是为了使用 ImageLoader,我们应该提供一个自定义的内存 LRC b ...

  4. 【第二篇】Volley的使用之加载图片

    Volley加载图片有两种方式: 1,ImageRequest 来对网络图片进行请求,放入请求队列,获取后现在在控件上面. 2,NetworkImageView 最为自定义控件来自动加载网络图片. 3 ...

  5. android 加载图片框架--Glide使用详解

    一.简介 Glide,一个被google所推荐的图片加载库,作者是bumptech.这个库被广泛运用在google的开源项目中,包括2014年的google I/O大会上发布的官方app.(PS:众所 ...

  6. ImageLoader加载图片

    先导universal-image-loader-1.9.3包 在application配置 android:name=".MyApplication" intent权限 1 pa ...

  7. Android之ListView异步加载图片且仅显示可见子项中的图片

    折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...

  8. Android中的Glide加载图片

    注意:在Android Studio的项目的build.gradle中添加: compile 'com.github.bumptech.glide:glide:3.6.1' 然后同步一下 目录: 使用 ...

  9. 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3

    备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...

随机推荐

  1. Asp.Net Web API 2 官网菜鸟学习系列导航

    链接地址: http://www.cnblogs.com/aehyok/p/3446289.html

  2. Mysql 忘记密码处理配置

    Mysql忘记密码处理 1.设置mysql密码 mysqladmin -uroot password ‘密码’ 2.主配置文件下取消密码授权 vim /etc/my.cnf 注:加入skip-gran ...

  3. C++结构体定义和C的区别

    对于C来说,struct定义的结构体不是一种数据类型,所以每次声明的时候需要加上struct让编译器知道这是结构体,为了不每次都加上struct关键字,可以在定义结构体的时候加上typedef关键字: ...

  4. 《React-Native系列》RN与native交互与数据传递

    RN怎么与native交互的呢? 下面我们通过一个简单的Demo来实现:RN页面调起Native页面,Native页面选择电话本数据,将数据回传给RN展示. 首先是 Native侧 1.MainAct ...

  5. Spring核心技术AOP实现原理

    关于Spring的AOP也是Spring的非常重要的一项技术.大致上可以这样说,面向切面编程,它的出现说明可以在不修改代码的情况下实现对功能的增强.而增强就是给一个方法增加一些功能.AOP主要思想就是 ...

  6. Dispatcher initialization failedUnable to load configuration 解决办法

    检查<package name="action" extends="struts-default"></package>中是否有exte ...

  7. 多线程-模拟阻塞queue队列

    前阵子学习了多线程,现在进行总结一下,模拟队列. 分析问题: (1)首先需要一个容器存放元素,这里用linkedList队列. (2)每次像容器中添加或删除元素的时候需要计数,所以这里需要一个计数器, ...

  8. java 对类型的基本操作小结

    1.json 字符串转换成对象 SyncCarriageStatusDTO dto= JSON.parseObject(value,SyncCarriageStatusDTO.class); List ...

  9. JNI_Z_09_Java的字符串

    ZC: jstring 就是 Java中的String对象 ZC: 10.8 Unicode字符串结尾(http://www.360doc.cn/article/14233282_321497569. ...

  10. codeforces 820A. Mister B and Book Reading 解题报告

    题目链接:http://codeforces.com/problemset/problem/820/A 坑爹题目,坑爹题目,坑爹题目....汗 = =!  后台还110个 test 有个地方需要注意下 ...