访问网络需要权限 <uses-permission android:name="android.permission.INTERNET"/>
1. 要请求的图片地址 String imgurl ="http://pic12.nipic.com/20110112/4775714_091244001112_2.jpg";
2. 获取URL对象 URL url = new URL(imgurl);
3.获取服务器连接对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
4.初始化连接对象 : conn.setRequestMethod("GET") get请求
conn.setReadTimeOut 读取文件超时
conn.setConnectTimeOut 连接超时
5. 连接服务器 conn.connect();
6.返回结果 if(conn.getResponseCode()==200){ //200是连接成功
InputStream is= conn.getInputStream(); //拿到从服务返回的数据流。是一个InputStream 输入流
//从输入流的数据中取出图片的数据并组合成图片
Bitmat bm= BitmapFactory.decodeStream(is);
}else{
Toast.makeText(this, "请求服务器失败", 0).show();
}
在4.3版本中,由于不允许耗时操作在主线程中进行,所有上网等耗时操作需要在子线程中开始
new Thread(){
public void run(){
// 将下载的过程放到这里
完成之后由于在子线程中不能更新UI。需要发个消息到主线程
Message msg = handler.obtainMessage();
msg.obj= bm;
handler.SendMessage(msg);
};
}.start;
private Handler handler= new Handler(){
public void handlerMessage(android.os.Message msg){
//msg 就是从子线程传过来的消息
}
};