关闭

Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)

标签: 网络手机androidnullfileurl
783人阅读 评论(0) 收藏 举报
分类:

http://doinone.iteye.com/blog/1074366



// 如果缓存里面有就从缓存获取,否则网络获取图片,返回Drawable对象
	public static Drawable loadImageFromNetwork(Context context, String imageUrl)
	{
		Drawable drawable = null;
		if(imageUrl == null )
			return null;
		String imagePath = "";
		String   fileName   = "";
			
		// 获取url中图片的文件名与后缀
		if(imageUrl!=null&&imageUrl.length()!=0){ 
            fileName  = imageUrl.substring(imageUrl.lastIndexOf("/")+1);
		}
		
		// 图片在手机本地的存放路径,注意:fileName为空的情况
		imagePath = context.getCacheDir() + "/" + fileName;

		Log.i("test","imagePath = " + imagePath);
		File file = new File(context.getCacheDir(),fileName);// 保存文件
		Log.i("test","file.toString()=" + file.toString());
		if(!file.exists()&&!file.isDirectory())
		{
			try {
				// 可以在这里通过文件名来判断,是否本地有此图片
				
				FileOutputStream   fos=new   FileOutputStream( file );
				InputStream is = new URL(imageUrl).openStream();
				int   data = is.read(); 
				while(data!=-1){ 
				        fos.write(data); 
				        data=is.read();; 
				} 
				fos.close();
				is.close();
//				drawable = Drawable.createFromStream(
//						new URL(imageUrl).openStream(), file.toString() ); // (InputStream) new URL(imageUrl).getContent();
				drawable = Drawable.createFromPath(file.toString());
				Log.i("test", "file.exists()不文件存在,网上下载:" + drawable.toString());
			} catch (IOException e) {
				Log.d("test", e.getMessage());
			}
		}else
		{
			drawable = Drawable.createFromPath(file.toString());
			Log.i("test", "file.exists()文件存在,本地获取");
		}
		
		if (drawable == null) {
			Log.d("test", "null drawable");
		} else {
			Log.d("test", "not null drawable");
		}
		
		return drawable ;
	}


0
0
查看评论

Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)

获取网络图片的方法(如果手机缓存里面有就从缓存获取),我以前写的,比较原始:Java代码 ImageView mImageView = (ImageView)this.findViewById(R.id.imageview); String imagePath = getImagePath(con...
  • fulianwu
  • fulianwu
  • 2011-06-16 00:40
  • 3825

android获取缓存大小并清理缓存

本文主要注重介绍实战操作,理论知识可能介绍的不多,勿喷 简单说两句缓存的好处: 采用缓存,可以进一步大大缓解数据交互的压力,又能提供一定的离线浏览。下边我简略列举一下缓存管理的适用环境: 1. 提供网络服务的应用 2. 数据更新不需要实时更新,哪怕是3-5分钟的延迟也是可以采用缓存机制。 ...
  • wei_chong_chong
  • wei_chong_chong
  • 2016-08-12 09:56
  • 2395

获取sd卡缓存路径或手机缓存路径

sd卡缓存路径、应用程序缓存路径
  • wzhidev
  • wzhidev
  • 2017-03-20 14:20
  • 523

android glide 获取缓存图片

Glide是Google推荐用的图片加载框架,很简单就可以加载出图片了,如下: Glide.with(context).load(ImgUrl).into(ImageView); 也可以加一些常用的功能,如placeHolder图片等等,如下: Glide.with(context).load(Im...
  • u012737144
  • u012737144
  • 2017-03-08 15:02
  • 7342

Hibernate缓存事务

用了那么久hibernate,是时候做做总结了! Hibernate作为一个开源框架,对jdbc做了封装,好处帮助我们快速开发,省去了配置数据库和操作数据库底层的东西。 它大体上为我们干了三件事请,第一,根据对象及对象之间关系映射生成数据库的表和表关系,重点在于表关系,什么一对一,多对一,多对多。 ...
  • xiaopengaa
  • xiaopengaa
  • 2015-04-24 09:48
  • 475

通过案例快速学会Picasso图片缓存库

picasso是Square公司开源的一个Android图形缓存库,官网地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。
  • mynameishuangshuai
  • mynameishuangshuai
  • 2016-05-20 16:20
  • 11477

Android 获取缓存大小和清除缓存功能

前言 我们常常会看到某某APP中会有清除APP浏览时产生的缓存清理功能,今天闲来无事也试试实现这功能,虽然说第三方的清理工具可以帮你清理,但是如果你的手机物理内存比较小的话你还会安装第三方软件么?虽然现在三四百的安卓手机内存都比较大了,但是提高用户体验APP自身带一个清理缓存的功能还是有必要的。 ...
  • qq_31546677
  • qq_31546677
  • 2017-07-21 11:59
  • 1458

Android记录20-获取缓存大小和清除缓存功能

Android开发记录20-获取缓存大小和清除缓存功能 本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等。我们开发产品的时候,可能会有这样的一个需求清除应用内缓存的数据,
  • wwj_748
  • wwj_748
  • 2015-01-15 19:18
  • 56200

Android-Universal-Image-Loader图片缓存的位置和名字

至于框架设置图片缓存在前两章博客已经有了说明。项目用到异步加载图片的框架还用到了,图片触摸缩放的框架。在给控件设置图片的时候。 我就要找到异步加载图片框架的位置和名字的命名规则。我首先想到打开图库。查看。然没有。。。。。。。之后查看源码才找到 在 SD卡的Android/data/youpa...
  • u013134391
  • u013134391
  • 2014-05-18 01:02
  • 2151

Weex的JS缓存实现

服务端将weex可用的模块打包成JS Bundle下发到客户端,JS Bundle没有分具体模块所以文件较大,每次进入页面去请求会产生多余的通信流量及下载时间。
  • wanmeilang123
  • wanmeilang123
  • 2017-12-13 12:03
  • 297
    个人资料
    • 访问:11098912次
    • 积分:77401
    • 等级:
    • 排名:第24名
    • 原创:506篇
    • 转载:912篇
    • 译文:4篇
    • 评论:2264条
    打赏
    如果您认为本博客不错,读后觉得有收获,不妨打赏赞助我一下,让我有动力继续写出高质量的博客。



    赠人玫瑰,手有余香。分享技术,传递快乐。

    有心课堂,传递的不仅仅是技术!

    QQ交流群:250468947

    有心课堂会员,请加入VIP QQ交流群:213725333

    github
    我的视频
    博客专栏
    最新评论