见如下代码:
?
?
/** * 到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, 故改为现在这种方式。
?