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 就是从子线程传过来的消息

    }

    };

    大道至简,知易行难,知行合一,得到功成;大道至简,悟在天成。
  • 相关阅读:
    网络对抗技术-实验四
    网络对抗技术-实验三
    安卓终端-Termux
    linux杂记
    使用pl/sql导入导出oracle
    systemctl 实现开机自启服务
    Java8 Collectors.toMap的坑
    idea使用lombok插件
    解决Lost connection to MySQL server during query错误方法
    java8之lamda
  • 原文地址:https://www.cnblogs.com/XingzhiDai/p/5475035.html
Copyright © 2011-2022 走看看