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, 故改为现在这种方式。
?