文档章节

使用Volley框架的ImageLoader加载网络图片

gaolu
 gaolu
发布于 2014/08/25 15:23
字数 321
阅读 7784
收藏 8

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

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

public void displayImg(View view){
    ImageView imageView = (ImageView)this.findViewById(R.id.image_view);
    RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext()); 
        
    ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache());
    ImageListener listener = ImageLoader.getImageListener(imageView,R.drawable.default_image, R.drawable.default_image);
    imageLoader.get("http://developer.android.com/images/home/aw_dac.png", listener);
    //指定图片允许的最大宽度和高度
    //imageLoader.get("http://developer.android.com/images/home/aw_dac.png",listener, 200, 200);
}

使用ImageLoader.getImageListener()方法创建一个ImageListener实例后,在imageLoader.get()方法中加入此监听器和图片的url,即可加载网络图片.

下面是使用LruCache实现的缓存类

public class BitmapCache implements ImageCache {
    private LruCache<String, Bitmap> cache;
    public BitmapCache() {
        cache = new LruCache<String, Bitmap>(8 * 1024 * 1024) {
            @Override
            protected int sizeOf(String key, Bitmap bitmap) {
                return bitmap.getRowBytes() * bitmap.getHeight();
            }
        };
    }
    @Override
    public Bitmap getBitmap(String url) {
        return cache.get(url);
    }
    @Override
    public void putBitmap(String url, Bitmap bitmap) {
        cache.put(url, bitmap);
    }
}

最后,别忘记在AndroidManifest.xml文件中加入访问网络的权限

<uses-permission android:name="android.permission.INTERNET"/>

本文示例源代码下载地址:
http://download.csdn.net/detail/gaolu/7815527

© 著作权归作者所有

gaolu
粉丝 29
博文 58
码字总数 52768
作品 0
朝阳
架构师
私信 提问
加载中

评论(1)

每周精粹
每周精粹
不可以监听 加载进度。。。。
ym—— Android网络框架Volley(终极篇)

没看使用过Volley的同学可以,先看看 Android网络框架Volley(体验篇)和Android网络框架Volley(实战篇)在进行本篇学习这样会更好的理解本篇内容. 本篇内容主要是讲Volley在某些细节方面的选择...

天下杰论
2014/11/13
133
0
volley浅析(磨砺营马剑威Android)

【威哥说】Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。Volley特别适合数据量不大但是通信频繁的场景。在listView显示图片这方面,使用volley也是比较好的,不必担...

磨砺营
2016/09/02
40
0
【Android】android Volley完全解析(二)

第一篇Volley的详解:https://my.oschina.net/u/2547914/blog/805196 上一篇文章我们讲解了StringRequest和JsonRequest的基本使用方法,那么接下来我们接着上一篇文章接着写,这篇我们讲解关...

定陶黄公子
2016/12/13
36
0
Volley框架之网络请求和图片加载

Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架。Volley的特性的请求队列,一定程度符合 Http 规范,包括请求头的处理,缓存机制的支持等。 (3).自定义的网络图像加载视图(...

切切歆语
2016/12/12
50
0
Volley网络请求框架简析——Android网络请求框架(三)

题记—— 人来到这个世界上,只有两件事情,生与死, 一件事完了,另一件事还急什么? 有缘而来,无缘而去, 识自本心,见自本性 不起妄缘,无心无为 自由自在,动静自如 冷暖自知,则是修行...

赵子龙
2016/07/02
117
0

没有更多内容

加载失败,请刷新页面

加载更多

在C语言中“静态”是什么意思?

我已经在C代码的不同地方看到了static一词。 这就像C#中的静态函数/类(实现在对象之间共享)吗? #1楼 多文件变量作用域示例 在这里,我说明了静态如何影响多个文件中函数定义的范围。 交流...

javail
5分钟前
3
0
利用 FC + OSS 快速搭建 Serverless 实时按需图像处理服务

作者:泽尘 简介 随着具有不同屏幕尺寸和分辨率设备的爆炸式增长,开发人员经常需要提供各种尺寸的图像,从而确保良好的用户体验。目前比较常见的做法是预先为一份图像存放多份具有不同尺寸的...

阿里巴巴云原生
7分钟前
2
0
前端架构最佳实践

Folders-by-Feature Structure 胜过 Folders-by-Type Structure

lilugirl
18分钟前
3
0
Seata AT 模式启动源码分析

从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM、TM、TC),接下来我会更新 Seata 源码分析系列文章。今天就来分...

后端进阶
19分钟前
3
0
Python中“自我”一词的目的是什么?

Python中self词的目的是什么? 我知道它是指从该类创建的特定对象,但是我看不到为什么要将它显式地作为参数添加到每个函数中。 为了说明这一点,在Ruby中,我可以这样做: class myClass ...

技术盛宴
21分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部