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

网络图片下载

2016-07-22 17:42 288 查看
HttpURLConnection

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();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: