android获取网络图片

本文介绍了一种确保从网络上完整下载二维码图片的方法,通过直接读取图片的字节流来避免图片显示不全的问题,并提供了具体的Java实现代码。

工作中用到了需要获取网络二维码图片,可是网上给的方法获取后发现有时出现图片显示不全的情况,估计是因为输入流没有读完就生成了图片。

 

还是老老实实的获取图片的byte数组才能获取完整的图片。

 

代码如下:

 

 

	/**
	 * 获取指定路径,的数据。
	 * 
	 * **/
	public static byte[] getImage2(String urlpath) {
		URL url;
		HttpURLConnection conn = null;
		InputStream inputStream = null ;
		try {
			url = new URL(urlpath);

			conn = (HttpURLConnection) url.openConnection();
			conn.setRequestMethod("GET");
			conn.setConnectTimeout(6 * 1000);
			// 别超过10秒。
			if (conn.getResponseCode() == 200) {
				inputStream = conn.getInputStream();
				return readStream(inputStream);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				inputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			conn.disconnect();
		}
		return null;
	}

	/**
	 * 读取数据 输入流
	 * 
	 * */

	private static byte[] readStream(InputStream inStream) throws Exception {
		ByteArrayOutputStream outstream = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int len = -1;
		while ((len = inStream.read(buffer)) != -1) {
			outstream.write(buffer, 0, len);
		}
		outstream.close();
		inStream.close();

		return outstream.toByteArray();
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值