Android基于HttpURLConnection的异步下载图片
2016-03-29 20:49
423 查看
总所周知在Android6.0以后抛弃了对HttpClient的支持,提倡使用HttpURLConnection来网络请求,今天要用的就是使用HttpURLConnection做的一个异步任务下载图片的例子,不罗嗦,上代码:
我这里有一张网络图片的地址
然后开始我们的异步任务之旅
注释已经很详细不细说
下面就开始使用了
由于简单我就直接在Activity的Oncreate方法中调用
导致一个简单的异步任务下载图片的例子就完成了,下面我要做的事使用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下载图片并缓存到本地