您的位置:首页 > 理论基础 > 计算机网络

android开源项目SmartImageView设置网络图片url时抛出java.io.FileNotFoundException

2014-05-11 23:36 411 查看
package com.loopj.android.image;

import java.io.InputStream;

import java.net.URL;

import java.net.URLConnection;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

public class WebImage implements SmartImage {

private static final int CONNECT_TIMEOUT = 5000;

private static final int READ_TIMEOUT = 10000;

private static WebImageCache webImageCache;

private String url;

public WebImage(String url) {

this.url = url;

}

public Bitmap getBitmap(Context context) {

// Don't leak context

if(webImageCache == null) {

webImageCache = new WebImageCache(context);

}

// Try getting bitmap from cache first

Bitmap bitmap = null;

if(url != null) {

bitmap = webImageCache.get(url);

if(bitmap == null) {

bitmap = getBitmapFromUrl(url);

if(bitmap != null){

webImageCache.put(url, bitmap);

}

}

}

return bitmap;

}

private Bitmap getBitmapFromUrl(String url) {

Bitmap bitmap = null;

try {

URLConnection conn = new URL(url).openConnection();

conn.setConnectTimeout(CONNECT_TIMEOUT);

conn.setReadTimeout(READ_TIMEOUT);

conn.setRequestProperty(

"User-Agent",

"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)");

bitmap = BitmapFactory.decodeStream((InputStream) conn.getContent());

} catch(Exception e) {

e.printStackTrace();

}

return bitmap;

}

public static void removeFromCache(String url) {

if(webImageCache != null) {

webImageCache.remove(url);

}

}

}

在getBitmapFromUrl方法中指定浏览器的类型即可

conn.setRequestProperty(

"User-Agent",

"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐