`
阅读更多

最新内容建议直接访问原文:Android ImageSDCardCache缓存

 

本文主要介绍一个支持图片自动预取、支持多种缓存算法的图片Sd卡缓存的使用及功能,仅需两步即可。示例APK地址:TrineaAndroidDemo

 

主要特性:(1).使用简单 (2). 轻松获取及预取新图片(3).可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法(4). 支持文件sd卡保存及自定义文件名规则(5).省流量性能佳(有且仅有一个线程获取图片) (6).支持不同类型网络处理(7).可根据系统配置初始化缓存 (8). 支持序列化(9).扩展性强 (10).支持队列 (11). 包含map的大多数接口。

 

适用:获取图片较多且图片较大的应用,如新浪微博大图、twitter大图、微信图片、美丽说、蘑菇街、花瓣、淘宝等等。

 

本文以用ImageSDCardCache实现瀑布流为例,示例APK地址见Demo.apk,示例代码地址见ImageSDCardCacheDemo,效果图如下:

 

 
 

 

分享到:
评论
8 楼 Trinea 2012-11-20  
溦笑鏾塲 写道
                                                                                              

哈哈,最近改了一些东西,稍微晚点会发个最新版本的
7 楼 溦笑鏾塲 2012-11-20  
                                                                                              
6 楼 Trinea 2012-11-08  
bobolzz 写道
程序退出后重新进入,发现所有的缓存都会重新请求一边,但是文件夹里确实是有缓存下来的图片的。如此下来就生成了n张重复图片。请问是应该进行序列化还是哪里有设置的地方?不解,多谢!~

图片的命名确实没处理好,你可以通过setFileNameRule(FileNameRule)设置自己的图片规则,或是自己写个清理的脚本,否则按照默认的文件命名规则时间长了会有不少图片在目录中
5 楼 Trinea 2012-11-08  
bobolzz 写道
程序退出后重新进入,发现所有的缓存都会重新请求一边,但是文件夹里确实是有缓存下来的图片的。如此下来就生成了n张重复图片。请问是应该进行序列化还是哪里有设置的地方?不解,多谢!~

你可以判断缓存文件是否存在,若存在通过ImageSDCardCache的静态函数loadCache恢复缓存,若不存在再new ImageSDCardCache
4 楼 bobolzz 2012-11-08  
程序退出后重新进入,发现所有的缓存都会重新请求一边,但是文件夹里确实是有缓存下来的图片的。如此下来就生成了n张重复图片。请问是应该进行序列化还是哪里有设置的地方?不解,多谢!~
3 楼 logan676 2012-08-22  
Trinea 写道
logan676 写道
导入项目后,缺少JavaCommon-2.0.3-jar-with-dependencies.jar包,劳烦楼主共享一下该jar包,谢谢

代码的lib目录下应该有,没有的话可以看我置顶的第二 篇文章介绍

找到了,谢谢!
2 楼 Trinea 2012-08-21  
logan676 写道
导入项目后,缺少JavaCommon-2.0.3-jar-with-dependencies.jar包,劳烦楼主共享一下该jar包,谢谢

代码的lib目录下应该有,没有的话可以看我置顶的第二 篇文章介绍
1 楼 logan676 2012-08-20  
导入项目后,缺少JavaCommon-2.0.3-jar-with-dependencies.jar包,劳烦楼主共享一下该jar包,谢谢

相关推荐

    Android清理SD卡缓存数据库文件

    本数据库文件是清理Android手机SD卡缓存用的,有关这个数据库文件的详细用法请参考博文http://blog.csdn.net/l1028386804/article/details/47375595

    Android清理SD卡缓存数据源代码

    这个示例代码实现了清除Android SD卡缓存的功能,如想了解其实现的细节请参考博文:http://blog.csdn.net/l1028386804/article/details/47375595

    android 图片的二级缓存

    磁盘缓存通常存储在外部存储器上,如SD卡或内部存储。相比于内存,磁盘的读写速度较慢,但在容量上有很大优势。我们可以使用SQLite数据库、文件系统或第三方库如DiskLruCache来实现磁盘缓存。DiskLruCache提供了一种...

    android异步加载网络图片,双缓存内存加sd卡缓存 绝对不会出现内存溢出oom

    总的来说,"android异步加载网络图片,双缓存内存加sd卡缓存 绝对不会出现内存溢出oom"这个主题涉及到的关键技术包括异步编程、内存管理、缓存策略以及图片处理。通过合理的实践和优化,我们可以创建出一个高效、...

    Android WebView加载网页以及本地图片缓存问题

    2. 使用`file://`协议加载SD卡上的HTML文件和图片资源。确保文件路径正确,例如: ```java String sdCardPath = Environment.getExternalStorageDirectory().getPath(); webView.loadUrl("file://" + sdCardPath + ...

    android 下载图片并缓存

    - **外部存储**:Android提供了对外部存储的访问权限,可以将图片保存到SD卡或者内部存储的指定目录下。 - **DiskLruCache**:谷歌推荐的磁盘缓存实现,同样遵循LRU策略,将最近最少使用的缓存文件移除以节省空间...

    Android上SD卡图片的标准缓存方法

    在Android开发中,高效地管理和缓存图片是优化应用性能的关键步骤,特别是在处理大量图片的场景下,如社交应用、电商应用等。本篇将详细讲解Android上在SD卡上实现图片标准缓存的方法,主要关注`DiskLruCache`的使用...

    Android 图片缓存

    磁盘缓存通常存储在设备的外部存储器上,例如SD卡或内置存储。虽然磁盘的读写速度比内存慢,但容量大得多。磁盘缓存一般使用LRU(Least Recently Used)策略来管理,最近最少使用的图片会被优先淘汰。 3. **网络...

    Android远程图片获取和本地缓存

    2. **SD卡缓存**:在SD卡上为图片分配一定的存储空间,如10MB。加载图片时,首先检查SD卡上的缓存,若找到则直接使用并更新其使用时间戳;若未找到,则向服务器请求下载,成功后保存至SD卡,同时遵循LRU规则清理旧的...

    Android图片缓存

    2. **磁盘缓存**:磁盘缓存将图片数据存储在设备的外部存储器上,如SD卡或内部存储,空间较大,但访问速度相对较慢。 **三、图片缓存实现策略** 1. **LRU算法**:Least Recently Used(最近最少使用)是最常用的...

    android 读取SD卡图片

    在Android平台上,开发一款能读取SD卡中图片的应用是一项常见的任务。这涉及到对文件系统、权限管理、图片处理等多个方面的理解。以下是对这个主题的详细解析。 首先,我们需要了解Android对外部存储(如SD卡)的...

    Android数据存储(内置sdcard图片缓存)

    对于图片缓存,尤其是频繁访问的网络图片,我们通常选择外部存储中的SD卡(虽然现代Android设备可能没有物理SD卡,但内部存储中仍有一个类似于SD卡的分区)。这样做是因为外部存储空间大,适合存储大量媒体文件,...

    Android使用缓存机制实现文件下载及异步请求图片加三级缓存

    文件缓存(二级缓存)存储在外部存储,如SD卡上,提供长期存储。网络数据(三级缓存)则是最慢但最新的数据源,只有当内存和文件缓存中都找不到所需图片时,才会从网络加载。使用AsyncTask或者其他异步框架,如...

    android 图片缓存

    1. SD卡缓存:Android设备通常支持外部存储,即SD卡。开发者可以将图片保存到SD卡中,以便在下次需要时快速读取。这种方法节省了设备的内存资源,但读写速度相对较慢。需要注意的是,用户可能随时移除SD卡,因此在...

    Android图片缓存管理(管理SDK卡例子)

    我们需要批量加载和缓存图片,同时确保不会因一次性加载过多图片而导致内存压力过大。可以设置加载队列,按需加载,避免一次性加载所有图片。 总的来说,Android图片缓存管理涉及内存缓存、磁盘缓存、缓存策略、...

    Android网络图片缓存(网络cache和本地)

    本地缓存通常指的是将图片数据存储在设备的文件系统中,如内部存储或外部SD卡。这种方式可以离线访问图片,即使在网络不稳定或无网络的情况下也能保证图片加载。Android提供了多种本地缓存技术,如SQLite数据库、...

    Android异步加载图片示例,内存,SD卡双缓存(优化版)

    而SD卡缓存则用于存储大量图片,以防内存不足时使用。这种策略结合了速度与容量的优点,使得图片加载既快速又稳定。 在重写ImageLoader类时,开发者可能考虑了以下几点: 1. **图片解码**:在加载图片时,可能会...

    android使用Picasso自定义缓存位置

    这里需要注意的是,`getExternalCacheDir()`方法返回的是应用的外部缓存目录,这通常是在SD卡上的一个目录。如果你希望将缓存保存在内部存储上,则可以使用`getCacheDir()`方法。 #### 步骤三:使用自定义的Picasso...

    android图片缓存

    图片sd卡缓存和内存缓存,非常适合具有大量图片网络下载和图片展示的应用程序。

    Android 图片缓存 源码+事例

    3. **磁盘缓存**:将图片保存在SD卡或者内部存储,即使应用关闭,再次打开时也能快速加载图片。 4. **图片解码**:根据ImageView的大小动态解码图片,减少内存消耗。 5. **错误处理**:提供默认占位图和加载失败图,...

Global site tag (gtag.js) - Google Analytics