android 网络图片下载的实现方式及注意事项
2010-08-20 02:03:00 来源:WEB开发网android 从网上下载一个图片到本地的一般方式:
使用Activity调用这个方法就可以了
public class NetTool {
public static void main(String[] args){
try {
//得到图片地址
byte[] data = readImage("http://imgsrc.baidu.com/forum/pic/item/b2738bd49f8fd32da18bb7a4.jpg");
FileOutputStream outStream = new FileOutputStream(new File("Img271728976.jpg"));
outStream.write(data);
//关闭流的这个地方需要完善一下
outStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//声明称为静态变量有助于调用
public static byte[] readImage(String path) throws Exception{
URL url = new URL(path);
// 记住使用的是HttpURLConnection类
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
//如果运行超过5秒会自动失效 这是android规定
conn.setConnectTimeout(5*1000);
InputStream inStream = conn.getInputStream();
//调用readStream方法
return readStream(inStream);
}
public static byte[] readStream(InputStream inStream) throws Exception{
//把数据读取存放到内存中去
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while( (len=inStream.read(buffer)) != -1){
outSteam.write(buffer, 0, len);
}
outSteam.close();
inStream.close();
return outSteam.toByteArray();
}
下载网络图片时注意事项:
开发android软件,有时需要用到下载网络图片。在使用的过程中,如果网络比较慢的话,则会出现下载不成功的问题。采用如下方法,可以比较好的解决这个问题。
一般我们会用以下的代码:
//获取connection,方法略
conn = getURLConnection(url);
更多精彩
赞助商链接