博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Andorid Volley加载网络图片, 每次都会重新加载的问题
阅读量:4514 次
发布时间:2019-06-08

本文共 1881 字,大约阅读时间需要 6 分钟。

在项目中,使用volley,用来与服务器交互,上传,下载,最近遇到一个问题:

在listview中显示网络图片,但每次都会重新刷新,调试发现问题出在BitmapLruCache

每次put的时候,都返回null, 个人认为关键问题是设计好cache的大小

public static void loadImageByVolley(String imageUrl, ImageView mImageView, ImageListener lis) {    ImageLoader imageLoader = MyApplication.getInstance().getImageLoader();    if (null == lis) {      ImageListener listener =          ImageLoader.getImageListener(mImageView, R.drawable.app_icon_gray,              R.drawable.app_icon_gray);      imageLoader.get(imageUrl, listener);    } else {      imageLoader.get(imageUrl, lis);    }    return;  }

 MyApplication.java

public ImageLoader getImageLoader() {    if (null == mImageLoader) {      if (null == mBitmapLruCache) {        int memClass =            ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();        int cacheSize = 1024 * 1024 * (memClass / 4);        mBitmapLruCache = new BitmapLruCache(cacheSize);      }      mImageLoader = new ImageLoader(getRequestQueue(), mBitmapLruCache);    }    return mImageLoader;  }

 

BitmapLruCache.java

import android.graphics.Bitmap;import android.support.v4.util.LruCache;import com.android.volley.toolbox.ImageLoader;public class BitmapLruCache extends LruCache
implements ImageLoader.ImageCache { public BitmapLruCache() { this((int) (Runtime.getRuntime().maxMemory() / 1024) / 8); } public BitmapLruCache(int sizeInKiloBytes) { super(sizeInKiloBytes); } @Override protected int sizeOf(String key, Bitmap bitmap) { int size = bitmap.getByteCount() / 1024; return size; } public boolean contains(String key) { return get(key) != null; } public Bitmap getBitmap(String key) { Bitmap bitmap = get(key); return bitmap; } public void putBitmap(String url, Bitmap bitmap) { put(url, bitmap); }}

 

 

自己也有很多模糊不懂的地方,欢迎大家来喷和讨论

参考网页:

转载于:https://www.cnblogs.com/wishful/p/4402768.html

你可能感兴趣的文章
Delphi中使用DirectX截屏函数
查看>>
给内联元素设置宽高的几种方式
查看>>
Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)
查看>>
MariaDB -- 数据类型
查看>>
JS 学习笔记--8---Function类型
查看>>
进程环境
查看>>
Clean Code 《代码整洁之道》前四章读书笔记
查看>>
jQuery中$.get()、$.post()和$.ajax()
查看>>
const char *p;和char * const p的区别
查看>>
此博客不再更新,新博客地址https://xsamsara.tk/
查看>>
万以内的字符串整数变成汉子字符串
查看>>
给网页添加跟随你鼠标移动的线条动画
查看>>
那些实用的Nginx规则
查看>>
oracle 解锁表
查看>>
2.1 - 递归练习题
查看>>
webApi之FromUri和FromBody区别
查看>>
HDU 4027 Can you answer these queries?
查看>>
智慧故事----每次进来看看都会有收获
查看>>
scala的list源码解密
查看>>
JavaScript&JQ 004_JS闭包
查看>>