xUtils图片本地缓存使用

今天使用xUtils进行网络图片加载与缓存时始终找不到该如何缓存以及如何使用缓存

看github上说明也没有对这一块的说明 示例代码中也没有相关代码

后来搜索了说xUtil基于afinal进行更改 因为之前没有使用过afinal框架 因此浪费了很多时间

现对此做些介绍


这里是对一张图片进行操作进行介绍


首先创建BitmapUtils时使用带有缓存路径的构造创建 如果要对文件大小进行限制 可以使用三个参数的构造

bitmapUtils = new BitmapUtils(this, cachePath);

其次设置缓存图片名称 这里默认名称可能是对默认图片名称进行MD5转换

缓存图片不是jpg等后缀的图片文件 (开始不知道 一直以为没有进行图片本地缓存)

bitmapUtils.configDiskCacheFileNameGenerator(new FileNameGenerator() {

@Override
public String generate(String arg0) {
return fileName;
}
});

显示图片时默认对图片进行缓存

bitmapUtils.display(iv, img_url);


缓存图片使用

File bitmapFileFromDiskCache = bitmapUtils.getBitmapFileFromDiskCache(cachePath+"/"+fileName);

if(bitmapFileFromDiskCache.exists()){
bitmapUtils.display(iv, cachePath+"/"+fileName);
}else{// TODO 没有图片 加载默认图片
iv.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher));
}




package com.example.pictest;

import java.io.File;

import com.lidroid.xutils.BitmapUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.cache.FileNameGenerator;
import com.lidroid.xutils.view.annotation.ViewInject;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.widget.ImageView;

public class MainActivity extends Activity {
	public static final String TEST = "http://221.2.159.215:90/uploads/allimg/090705/1345133136-0.jpg";
	private static final String fileName = "cacheFile";

	private BitmapUtils bitmapUtils;
	private String cachePath;

	@ViewInject(R.id.iv)
	ImageView iv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		ViewUtils.inject(this);
		cachePath = Environment.getExternalStorageDirectory() + "/cacheFileDir";
		bitmapUtils = new BitmapUtils(this, cachePath);
		bitmapUtils.configDiskCacheFileNameGenerator(new FileNameGenerator() {

			@Override
			public String generate(String arg0) {
				return fileName;
			}
		});
		File bitmapFileFromDiskCache = bitmapUtils.getBitmapFileFromDiskCache(cachePath+"/"+fileName);
		if(bitmapFileFromDiskCache == null){
			bitmapUtils.display(iv, TEST);
		}else {
			bitmapUtils.display(iv, cachePath+"/"+fileName);
		}
		
	}

}



  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值