网络图片下载
2016-07-22 17:42
288 查看
HttpURLConnection
Handler
代码如下:
Handler
代码如下:
package com.wangli.imageviewdemo; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; public class MainActivity extends Activity { Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case 1: ImageView img = (ImageView) findViewById(R.id.img); //把位图对象显示至imageView img.setImageBitmap((Bitmap) msg.obj); case 0: Toast.makeText(MainActivity.this,"requeset failed",Toast.LENGTH_SHORT).show(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v){ new Thread() { @Override public void run() { super.run(); String path = "http://192.168.1.104:8080/11.jpg"; URL url = null; try { //把网址封装成一个url对象 url = new URL(path); //获取连接对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //设置请求方式 conn.setRequestMethod("GET"); //设置超时时间 conn.setReadTimeout(5000); conn.setConnectTimeout(5000); //连接 conn.connect(); //响应码 if (conn.getResponseCode() == 200) { //获取服务器响应头中的流,流里的数据就是客户端请求的数据 InputStream is = conn.getInputStream(); //读取出流量里的数据,并构成位图对象 Bitmap bm = BitmapFactory.decodeStream(is); Message msg = Message.obtain(); msg.obj = bm; msg.what = 1; handler.sendMessage(msg); } else { Message msg = Message.obtain(); msg.what = 0; } } catch( MalformedURLException e ) { e.printStackTrace(); } catch( ProtocolException e ) { e.printStackTrace(); } catch( IOException e ) { e.printStackTrace(); } } }.start(); } }
相关文章推荐
- OKHTTP网络请求——上传下载
- TCP网络编程
- 神经网络:表示
- UDP网络编程
- Network——Socket网络通信机制以及实现举例(TCP、UDP等)
- Java实现——Socket网络通信的机制以及实现举例
- Node.js HTTP模块与事件模块
- AngularJS中$http服务的简单用法
- 直播推流端网络优化策略
- 【Android进阶】ListView使用“内存双缓存+硬盘缓存”加载网络图片
- tcp协议实现C/S通信(代码)
- iis https 客户端证书
- http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html
- webservice接口实现数据共享的实现的初步解决方案(更新、删除)
- http://www.hulian.top/zixun/post/4771.html
- 如何加强神经网络训练
- IP地址的分类——a,b,c 类是如何划分的
- iOS网络HTTP、TCP、UDP、Socket 知识总结
- Android如何使用Https
- TCP粘包,拆包及解决方法