读取大文件流的问题:缓存开多线程把图片从网络上荡下来以后,首先缓存至本地文件夹 //android.content.ContextWrapper.getCacheDir() android系统提供的一个存放和得到缓存文件夹的方法
然后对文件全路径截取后缀之前的内容进行MD5加密并与后缀拼成一个文件名,根据这个文件名和传入的路径构建一个文件 写一个缓存方法 判断是否存在缓存文件
如果是则返回加密后文件的Uri,如果不是则从网上下载文件并返回文件的Uri.做缓存的目的是用缓存的文件,而Uri就可以唯一标识一个文件。
public static Uri cacheFile(String path,File saveDir)throws Exception{ File file = new File(saveDir, MD5.getMD5(path)+ path.substring(path.lastIndexOf('.')));
if(file.exists()){
return Uri.fromFile(file);
}else{
FileOutputStream outStream = new FileOutputStream(file);
HttpURLConnection conn = (HttpURLConnection)new URL(path).openConnection();
conn.setConnectTimeout(5 * 1000);
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200){
InputStream inStream = conn.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while( (len = inStream.read(buffer)) !=-1 ){
outStream.write(buffer, 0, len);
}
outStream.close();
inStream.close();
return Uri.fromFile(file);
}else{
throw new Exception("文件下载失败!");
}
}
}
- 浏览: 960933 次
最新评论
-
JueLie:
规划规划
【Java线程】锁机制:synchronized、Lock、Condition -
yuejingjiahong:
android自带Json API -
ti_an_1989:
所以这种情况是不使用launchMode为singleTask ...
android Task,launcherMode对返回键与laucher的影响 -
IXHONG:
http://itlong.com
依赖注入和控制反转 -
lookstorm:
好文
java内存模型
相关推荐
演化理解 Android 异步加载图片
安卓源码包android图片缓存&展示Android 异步加载图片等24个合集: ‘360全景查看demo.rar afinal框架实现图片的简单异步缓存加载.rar andengine中直接加载多张小图片合成一张大图片生成动画精灵.rar android gif...
Android 异步加载图片缓存优化能异步加载图片,并缓存到本地,采用一级缓存,二级缓存和本地缓存,避免oom异常。源码中有详细注释,资料中有jar包,可以直接复制到项目中使用。
android listView图片异步加载(拖动时不加载,双缓存)
android图片异步加载缓存
Android项目实战-ListView异步图片加载及压缩缓存
批量下载加载图片,缓存,释放,一个小例子,下载看看就知道了!
afinal框架实现图片的简单异步缓存加载.rar
Android异步加载图像小结 (含线程池,缓存方法)
图片异步加载并缓存,详解Android-Universal-Image-Loader,提供Android studio编写的工程文件代码的下载,只要导入工程文件,运行里面的app就可以了
android 网络和本地图片加载 支持异步加载并缓存
android端用于异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画。.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
xamarin异步加载并缓存图片库
Android-异步图片加载器.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
AsyncTask的使用及ListView的常见优化 asyncTask异步加载数据 使用了LruCache优化图片加载 通过滑动监听提高ListView滑动流畅度.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习...
Android中ListView全面完美的网络图片的异步加载,两种加载方式,利用了LruCache缓存,动态加载,只加载可见部分的图片.
在ListView中加载图片是非常常见的场景,图片的加载要满足下面的几个要求: (1)不管图片是位于网络还是本地,加载都不应该是同步的,而是应该异步去加载,比如用AsyncTask。 (2)为了避免重复下载图片和页面展示...
android图片异步加载+本地缓存+内存缓存通用jar包(含源码和文档)
演化理解 Android 异步加载图片.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
其中有个AsyncImageView的自定义View用于异步加载图片,不过也像网上的大多数图片异步加载方法一样,是跟图片的缓存关联在一起的,不过只是很简单的内存缓存,无文件缓存。图片的加载方法也如其他的一样是写死了的,...