下载图片的代码其实可以更简单,但经常会明明返回200状态,但得到的图片时null
这应该是由于图片没有一次全部加载完成的原因,经测试,用下面的代码能较好的解决这个问题
// 从网络下载图片,方法2 public static Bitmap getNetBitmap2(String imageURL) { Bitmap bitmap = null; try { URL url = new URL(imageURL);// 获取到路径 HttpURLConnection conn = (HttpURLConnection) url.openConnection();// http协议连接对象 conn.setRequestMethod("GET");// 这里是不能乱写的,详看API方法 conn.setConnectTimeout(9000);// 别超过10秒。 int state = conn.getResponseCode(); if (state == 200) { Comm.print("--loadNetBitmap--" + state); int length = (int) conn.getContentLength();// 获取长度 InputStream is = conn.getInputStream(); if (length != -1) { byte[] imgData = new byte[length]; byte[] temp = new byte[512]; int readLen = 0; int destPos = 0; while ((readLen = is.read(temp)) > 0) { System.arraycopy(temp, 0, imgData, destPos, readLen); destPos += readLen; } bitmap = BitmapFactory.decodeByteArray(imgData, 0, imgData.length); } } } catch (Exception e) { Comm.print("--loadNetBitmap--e--" + e.toString()); } return bitmap; }