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

Android基于HttpURLConnection的异步下载图片

2016-03-29 20:49 423 查看
总所周知在Android6.0以后抛弃了对HttpClient的支持,提倡使用HttpURLConnection来网络请求,今天要用的就是使用HttpURLConnection做的一个异步任务下载图片的例子,不罗嗦,上代码:

我这里有一张网络图片的地址

private String image_Path = "http://e.hiphotos.baidu.com/image/pic/item/2fdda3cc7cd98d10b510fdea233fb80e7aec9021.jpg";

然后开始我们的异步任务之旅

public class MyTask extends AsyncTask<String ,Void,Bitmap>{
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
iv_img.setImageBitmap(bitmap);
}

@Override
protected Bitmap doInBackground(String... params) {
URL url=null;
InputStream is=null;
Bitmap bitmap=null;
try{
//设置图片的路径
url=new URL(params[0]);
//开启连接
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
//设置超时的时间
conn.setConnectTimeout(5000);
//设置请求方式为GET
conn.setRequestMethod("GET");
//响应码为200则返回成功
if(conn.getResponseCode()==200){
//获取连接的输入流即图片的输入流
is=conn.getInputStream();
//将流转换为Bitmap
bitmap=BitmapFactory.decodeStream(is);
is.close();
}
}
catch (Exception e){
e.printStackTrace();
}finally {
try {
//关闭流
if (is != null) {
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}

}
return bitmap;
}
}

注释已经很详细不细说

下面就开始使用了

由于简单我就直接在Activity的Oncreate方法中调用

new MyTask().execute(image_Path);

导致一个简单的异步任务下载图片的例子就完成了,下面我要做的事使用HttpURLconnection下载图片并缓存到本地

到此基于HttpURLconnection的下载图片的例子结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息