xUtils图片本地缓存使用

首先创建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));
}

实践证明,不需要设置缓存的名称,xUtils会自动帮我们在cachePath中寻找图片缓存是否存在,存在时会自动加载缓存文件!


个人认为,Universal-Image-Loader比xUtils更稳当!



[html]  view plain copy
  1. package com.example.pictest;  
  2.   
  3. import java.io.File;  
  4.   
  5. import com.lidroid.xutils.BitmapUtils;  
  6. import com.lidroid.xutils.ViewUtils;  
  7. import com.lidroid.xutils.cache.FileNameGenerator;  
  8. import com.lidroid.xutils.view.annotation.ViewInject;  
  9.   
  10. import android.os.Bundle;  
  11. import android.os.Environment;  
  12. import android.app.Activity;  
  13. import android.view.Menu;  
  14. import android.widget.ImageView;  
  15.   
  16. public class MainActivity extends Activity {  
  17.     public static final String TEST = "http://221.2.159.215:90/uploads/allimg/090705/1345133136-0.jpg";  
  18.     private static final String fileName = "cacheFile";  
  19.   
  20.     private BitmapUtils bitmapUtils;  
  21.     private String cachePath;  
  22.   
  23.     @ViewInject(R.id.iv)  
  24.     ImageView iv;  
  25.   
  26.     @Override  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         setContentView(R.layout.activity_main);  
  30.   
  31.         ViewUtils.inject(this);  
  32.         cachePath = Environment.getExternalStorageDirectory() + "/cacheFileDir";  
  33.         bitmapUtils = new BitmapUtils(this, cachePath);  
  34.         bitmapUtils.configDiskCacheFileNameGenerator(new FileNameGenerator() {  
  35.   
  36.             @Override  
  37.             public String generate(String arg0) {  
  38.                 return fileName;  
  39.             }  
  40.         });  
  41.         File bitmapFileFromDiskCache = bitmapUtils.getBitmapFileFromDiskCache(cachePath+"/"+fileName);  
  42.         if(bitmapFileFromDiskCache == null){  
  43.             bitmapUtils.display(iv, TEST);  
  44.         }else {  
  45.             bitmapUtils.display(iv, cachePath+"/"+fileName);  
  46.         }  
  47.           
  48.     }  
  49.   
  50. }  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值