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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值