您的位置:首页 > 理论基础 > 计算机网络

Android解析获取网络上的图片(支持bmp格式)

2014-07-05 20:13 260 查看
Android学习系列 - 显示网络上的图片(支持bmp格式))

  见如下代码:

  /**

    * 到Url地址上去下载图片,并回传Bitmap回來

    *

    * @param imgUrl * @return     

    */

 public static Bitmap getBitmapFromUrl(String imgUrl)

{

    URL url;

    Bitmap bitmap = null;

    try {

        url = new URL(imgUrl);

        InputStream is = url.openConnection().getInputStream();                 

BufferedInputStream bis = new BufferedInputStream(is);

       // bitmap = BitmapFactory.decodeStream(bis); 注释1

        byte[] b = getBytes(is);

        bitmap = BitmapFactory.decodeByteArray(b,0,b.length);

        bis.close();

    }catch (MalformedURLException e) {

     e.printStackTrace();

    } catch (IOException e){

      e.printStackTrace();

    }

     return bitmap;

}

   /**

    * 将InputStream对象转换为Byte[]

    * @param is

    * @return

    * @throws IOException */

public static byte[] getBytes(InputStream is) throws IOException{      

ByteArrayOutputStream baos = new ByteArrayOutputStream();

        byte[] b = new  byte[1024];

         int len = 0;

          while ((len = is.read(b, 0, 1024)) != -1)

       {      

        baos.write(b, 0, len);

             baos.flush();

       }

          byte[] bytes = baos.toByteArray();   

          return bytes;

}

  得到Bitmap 之后,然后调用ImageView的setImageBitmap方法就正常显示了

  PS:注释1这里注意一下,原本是用注释1这里来进行获取的,png,jpg格式均正常

,但是图片格式为bmp时,这个方法获取的时候一直为null, 故改为现在这种方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 网络