Android异步下载网络图片(其一)
2011-04-13 17:56
381 查看
项目中有时候需要获取网络上的图片,并下载下来到手机客户端显示。怎么做呢?
实现思路是:
1:在UI线程中启动一个线程,让这个线程去下载图片。
2:图片完成下载后发送一个消息去通知UI线程
2:UI线程获取到消息后,更新UI。
这里的UI线程就是主线程。
这两个步骤涉及到一些知识点,即是:ProgressDialog,Handler,Thread/Runnable,URL,HttpURLConnection等等一系列东东的使用。
现在让我们开始来实现这个功能吧!
第一步:新建项目。
第二步:设计好UI,如下所示
View Code
如此以来,你会发现很好的完成了我们的下载目标了,你可以把它应用到其他方面去,举一反三。
运行截图如下:
实现思路是:
1:在UI线程中启动一个线程,让这个线程去下载图片。
2:图片完成下载后发送一个消息去通知UI线程
2:UI线程获取到消息后,更新UI。
这里的UI线程就是主线程。
这两个步骤涉及到一些知识点,即是:ProgressDialog,Handler,Thread/Runnable,URL,HttpURLConnection等等一系列东东的使用。
现在让我们开始来实现这个功能吧!
第一步:新建项目。
第二步:设计好UI,如下所示
View Code
//前台ui线程在显示ProgressDialog, //后台线程在下载数据,数据下载完毕,关闭进度框 @Override public void onClick(View view) { switch(view.getId()){ case R.id.btnFirst: dialog = ProgressDialog.show(this, "", "下载数据,请稍等 …", true, true); //启动一个后台线程 handler.post(new Runnable(){ @Override public void run() { //这里下载数据 try{ URL url = new URL(params); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setDoInput(true); conn.connect(); InputStream inputStream=conn.getInputStream(); bitmap = BitmapFactory.decodeStream(inputStream); Message msg=new Message(); msg.what=1; handler.sendMessage(msg); } catch (MalformedURLException e1) { e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); break;
如此以来,你会发现很好的完成了我们的下载目标了,你可以把它应用到其他方面去,举一反三。
运行截图如下:
相关文章推荐
- Android异步下载网络图片(其一Handler)
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其一:Handler)
- android异步下载网络图片(其一)
- Android异步下载网络图片(其一
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其一:Handler)
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其一)
- Android异步下载网络图片(其二)
- android异步下载网络图片(二)
- Android异步从网络下载图片并且缓存图片到本地的demo
- Android异步下载网络图片(3)
- Android异步下载网络图片(其二)
- Android异步从网络下载图片并且缓存图片到本地的demo
- Android之AsyncTask异步任务下载网络图片
- Android异步从网络下载图片并且缓存图片到本地的demo
- Android开发之异步下载网络图片并显示到UI界面