当前位置: 代码迷 >> Android >> Android学习系列 - 展示网络上的图片(支持bmp格式))
  详细解决方案

Android学习系列 - 展示网络上的图片(支持bmp格式))

热度:107   发布时间:2016-05-01 18:40:49.0
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, 故改为现在这种方式。

?

  相关解决方案