BitmapFactory.decodeStream 问题

 android 开发中,经常会获取图片的操作,前段时间做联网的图片读取操作时,偶然发现了个问题。经上网查阅资料,得知,这个android 的一个bug 。

在android 2.2 以下(包括2.2) 用 BitmapFactory.decodeStream() 这个方法,会出现概率性的解析失败的异常。而在高版本中,eg 2.3 则不会出现这种异常。

解决方法如下:

 

/**
  * 将网络图片,转换为 btye 类型
  * @param is
  * @return
  * @throws IOException
  */
 private static byte[] getBytes(InputStream is) throws IOException {          
  ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
  int imgSize = 1024*4;
  byte[] b = null; 
  byte[] bytes = null;
  try {
   b= new byte[imgSize];
   int len = 0;          
   while ((len = is.read(b, 0, imgSize)) != -1)           
   {           
    baos.write(b, 0, len);           
    baos.flush();          
   }          
   bytes = baos.toByteArray();          
   baos.close();
   is.close();
  } catch (Exception e) {
   Log.i(TAG, "将网络图片,转换为 btye 类型 方法异常"+e.toString());
  }finally
  {
   return bytes;
  }
    }

 

 

   byte[] date = getBytes(inStream);
    //获取bitmap

   Bitmap bm = BitmapFactory.decodeByteArray(date,0,date.length);


 

 

* 用此方法后,就不会出现那样的问题了。

 

你可能感兴趣的:(Date,android,exception,网络,null,byte)