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

    }

    };

    大道至简,知易行难,知行合一,得到功成;大道至简,悟在天成。
  • 相关阅读:
    QT开发之旅一DS7400主机调试工具
    读《程序员,你伤不起》杂感(附带分享两个项目源码)
    这些年过上幸福生活的程序员(中篇)
    这些年过上幸福生活的程序员(上篇)
    如果第三方数据表与系统数据库里的表名格式不一致的解决方案
    数据库设计原则
    MYSQL密码设置
    关于phpmyadmin #1045无法登陆服务器的问题
    TP快捷函数
    跨控制器调用
  • 原文地址:https://www.cnblogs.com/XingzhiDai/p/5475035.html
Copyright © 2011-2022 走看看