现在的位置: 首页 > 综合 > 正文

android中图片的三级cache策略(内存、文件、网络)之三:文件缓存策略

2014年06月03日 ⁄ 综合 ⁄ 共 1352字 ⁄ 字号 评论关闭

原文链接:http://blog.csdn.net/singwhatiwanna/article/details/17588159

前言

如果想很好地理解下面的故事,请参看我半年前写的两篇博文:android中图片的三级cache策略(内存、文件、网络)
 和 android中左右滑屏的实现(广告位banner组件),还有昨天晚上写的android中图片的三级cache策略(内存、文件、网络)之二:内存缓存策略

文件缓存策略

当一张图片从网络下载成功以后,这个图片会被加入内存缓存和文件缓存,对于文件缓存来说,这张图片将被以url的哈希值加cach后缀名的形式存储在SD卡上,这样,当下一次再需要同一个url的图片的时候,就不需要从网络下载了,而是直接通过url来进行查找。同时一张图片被访问时,它的最后修改时间将被更新,这样的意义在于:当SD卡空间不足的时候,将会按照最后修改时间来删除40%缓存的图片,确切来说,那些修改时间比较早的图片将会被删除。

代码展示

[java] view
plain
copy在CODE上查看代码片派生到我的代码片

  1. public class ImageFileCache  
  2. {  
  3.     private static final String TAG = "ImageFileCache";  
  4.       
  5.     //图片缓存目录  
  6.     private static final String IMGCACHDIR = "/sdcard/ImgCach";  
  7.       
  8.     //保存的cache文件宽展名  
  9.     private static final String CACHETAIL = ".cach";  
  10.                                                               
  11.     private static final int MB = 1024*1024;  
  12.       
  13.     private static final int CACHE_SIZE = 1;  
  14.       
  15.     //当SD卡剩余空间小于10M的时候会清理缓存  
  16.     private static final int FREE_SD_SPACE_NEEDED_TO_CACHE = 10;  
  17.                                                                   
  18.     public ImageFileCache()   
  19.     {  
  20.         //清理部分文件缓存  
  21.         removeCache(IMGCACHDIR);              
  22.     }  
  23.                                                                   
  24.     /**  
  25.      * 从缓存中获取图片  
  26.      */  
  27.     public Bitmap getImageFromFile(final String url)   
  28.     {      
  29.         final String path = IMGCACHDIR + "/"

抱歉!评论已关闭.