安卓新的联网方式 Volley的使用(2)
如果使用volley 获取 网络图片 最好还是用 Volley 提供的NetworkImageView类, 可以很轻松的 完成工作, 而且他可以设置缓存, lru 和 sd卡的缓存。一些都封装好了。
NetworkImageView类的具体使用方式如下:
<FrameLayout
android:id="@+id/flImageContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/gvImages"
android:layout_margin="30dp" > <com.android.volley.toolbox.NetworkImageView
android:id="@+id/nivTestView"
android:layout_width="100dp"
android:layout_height="100dp" >
</com.android.volley.toolbox.NetworkImageView>
</FrameLayout>
networkImageView = (NetworkImageView) findViewById(R.id.nivTestView); ..找到对应的 NetworkImageview mQueue = Volley.newRequestQueue(this); //老样子 ,生成 LruImageCache lruImageCache = LruImageCache.instance(); // 新加的, 这是一个实现了ImageCache 接口的缓存类 ,使用Lru ImageLoader imageLoader = new ImageLoader(mQueue,lruImageCache); //主要的联网获取图片工作都交给了他 networkImageView.setDefaultImageResId(R.drawable.ic_launcher); //默认加载图片
networkImageView.setErrorImageResId(R.drawable.ic_launcher); //错误的图片
networkImageView.setImageUrl(URLS[1], imageLoader);
所以在利用NetworkImageView之前,我们还需要先去实现这个接口,而Volley推荐的也就是LruCache,代码中的LruImageCache实现如下:
package com.lms.volleydemo; import android.graphics.Bitmap;
import android.support.v4.util.LruCache; import com.android.volley.toolbox.ImageLoader.ImageCache; public class LruImageCache implements ImageCache{ private static LruCache<String, Bitmap> mMemoryCache; private static LruImageCache lruImageCache; private LruImageCache(){
// Get the Max available memory
int maxMemory = (int) Runtime.getRuntime().maxMemory();
int cacheSize = maxMemory / 8;
mMemoryCache = new LruCache<String, Bitmap>(cacheSize){
@Override
protected int sizeOf(String key, Bitmap bitmap){
return bitmap.getRowBytes() * bitmap.getHeight();
}
};
} public static LruImageCache instance(){
if(lruImageCache == null){
lruImageCache = new LruImageCache();
}
return lruImageCache;
} @Override
public Bitmap getBitmap(String arg0) {
return mMemoryCache.get(arg0);
} @Override
public void putBitmap(String arg0, Bitmap arg1) {
if(getBitmap(arg0) == null){
mMemoryCache.put(arg0, arg1);
}
} }
2 然后开始合体了
ImageLoader imageLoader = new ImageLoader(mQueue,lruImageCache);
这里面详细 http://blog.csdn.net/linmiansheng/article/details/21293699
安卓新的联网方式 Volley的使用(2)的更多相关文章
- 安卓新的联网方式 Volley的使用(一)加载图片与 json
最近刚接触安卓, 以前搞wp ,一对比起来 ,安卓怎么这么麻烦.联网必须要重新开一个线程才可以.而且加载网络图片也很麻烦...花了很久一直卡在快速滑动加载网络图片的listview上面 ,一直很纠结痛 ...
- 【安卓网络请求开源框架Volley源码解析系列】初识Volley及其基本用法
在安卓中当涉及到网络请求时,我们通常使用的是HttpUrlConnection与HttpClient这两个类,网络请求一般是比较耗时,因此我们通常会在一个线程中来使用,但是在线程中使用这两个类时就要考 ...
- 【安卓网络请求开源框架Volley源码解析系列】定制自己的Request请求及Volley框架源码剖析
通过前面的学习我们已经掌握了Volley的基本用法,没看过的建议大家先去阅读我的博文[安卓网络请求开源框架Volley源码解析系列]初识Volley及其基本用法.如StringRequest用来请求一 ...
- 【转载】Virtual Box下配置Host-Only联网方式详解
其实网络这类相关的文章很多,我只是想结合自己的实际情况,把我的经验写下来,给那些需要的人们吧. 主机:windows 7 虚拟机:CentOS6.0 VirtualBox:4.2.0 虚拟机在安装好之 ...
- base 使网页所有超链接都以新超链接的方式打开
需求,网页有许多超链接,但是没有加 target="_blank",现在需要所有超链接都已新页面的方式打开 在head头添加 <base target="_blan ...
- 今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式
今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式 jquery中的serialize() 方法 该方法通过序列化表单值,创建 URL 编码文本字符串 序列化的值可在 ...
- 点击iframe窗口里的超链接,打开新页面的方式
点击iframe窗口里的超链接打开新页面的方式: a标签中设置按钮点击事件,事件调用的方法使用如下方法跳转链接: window.open('url链接', '_blank');
- 新的请求方式 fetch和axios
参考链接:https://www.javascriptcn.com/read-5840.html axios使用文档: https://www.kancloud.cn/yunye/axios/2348 ...
- ubuntu 18.04 通过联网方式安装wine
ubuntu 18.04 通过联网方式安装wine 1.如果是64位机器,先开启允许32位架构程序运行 sudo dpkg --add-architecture i386 2.添加元wine源码安装仓 ...
随机推荐
- IOS开发学习笔记(1)-----UILabel 详解
1. [代码][C/C++]代码 //创建uilabelUILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, ...
- bzoj2132【圈地计划】
题面 思路: 一开始以为和为了博多一样,两边连一样的,后来发现中间连负边的话根本不会割,即割断两块收益为负,所以WA的起飞…… 正解是先黑白染色,每个点和它周围的点连边方式不同.对于黑点A,S--&g ...
- Sublime Text 快捷键及使用技巧的学习整理
下载和安装(很简单,省略)下载地址 http://www.sublimetext.com/2 1. 有两点需要注意 a) Sublime Text目前稳定的版本是Sublime Text 2,Subl ...
- 关于Froala Editor的简单使用
1.添加样式表 <!-- 核心样式表 --> <link rel="stylesheet" href="${ctx}/resources/froala_ ...
- POJ 3764 The xor-longest( 树上异或前缀和&字典树求最大异或)
In an edge-weighted tree, the xor-length of a path p is defined as the xor sum of the weights of edg ...
- Swift Optional Chaining
Optional Chaining介绍 关于「optional chaining」,<The Swift Programming Language>是这么描述的: Optional cha ...
- 火狐浏览器安装VULTR笔记
1.购买一台vultr服务器, 支持支付宝扫码支付,直接美刀转人民币实时结算:优先选日本的,然后美国的; 购买服务器步骤: Server Location: Tokyo Japan Server Ty ...
- Dubbo原理与框架设计
Dubbo是常用的开源服务治理型RPC框架,在之前osgi框架下不同bundle之间的方法调用时用到过.其工作原理和框架设计值得开源技术爱好者学习和研究. 一.Dubbo的工作原理 调用关系说明 服务 ...
- 经验收获Linux终端下方便命令
一.命令行日常系快捷键 如下的快捷方式非常有用,能够极大的提升你的工作效率: CTRL + U - 剪切光标前的内容 CTRL + K - 剪切光标至行末的内容 CTRL + Y - 粘贴 CTRL ...
- [转载]Doxygen C++ 注释风格
转载自:http://luchenqun.com/?p=761 做一个C++方面的符合Doxygen的注释文档,备用. 1.头文件根原文件注释.这个我也不知道需要注释什么.能想到的是:谁写的,里面有些 ...