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

标签: 网络手机androidnullfileurl
747人阅读 评论(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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10602666次
    • 积分:75476
    • 等级:
    • 排名:第22名
    • 原创:505篇
    • 转载:916篇
    • 译文:4篇
    • 评论:2256条
    打赏
    如果您认为本博客不错,读后觉得有收获,不妨打赏赞助我一下,让我有动力继续写出高质量的博客。



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

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

    QQ交流群:250468947

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

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