zoukankan      html  css  js  c++  java
  • 第四天 下载网络图片显示

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

    }

    };

    大道至简,知易行难,知行合一,得到功成;大道至简,悟在天成。
  • 相关阅读:
    【linux就该这么学】-05
    【linux就该这么学】-04
    【linux就该这么学】-03
    【linux就该这么学】-02
    【linux就该这么学】-01
    【linux就该这么学】-00
    MySQL57安装与设置
    Docker(一) Docker入门教程
    Centos 7.X 安装及常规设置
    删除数组里所有与给定值相同的值
  • 原文地址:https://www.cnblogs.com/XingzhiDai/p/5475035.html
Copyright © 2011-2022 走看看