第四天 下载网络图片显示

 访问网络需要权限  <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 就是从子线程传过来的消息

}

};

posted @ 2016-05-09 19:03  一颗神豆  阅读(155)  评论(0编辑  收藏  举报