Android:bitmapfactory.decodestream返回null

Pon*_*lar 6 android bitmap

我试图从图像的路径获取位图图像.但是BitmapFactory.decodeStream回报null价值.

码:

URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
connection.disconnect();
input.close();
Run Code Online (Sandbox Code Playgroud)

我在更多的网站上搜索过,但我还没有得到解决方案.

Pon*_*lar 15

得到了解决方案:-)

HttpGet httpRequest = new HttpGet(URI.create(path) );
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
HttpEntity entity = response.getEntity();
BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
bmp = BitmapFactory.decodeStream(bufHttpEntity.getContent());
httpRequest.abort();
Run Code Online (Sandbox Code Playgroud)

问题是,一旦你使用了来自HttpUrlConnection的InputStream,你就不能再回放并再次使用相同的InputStream.因此,您必须为图像的实际采样创建新的InputStream.否则我们必须中止http请求.

  • @Guy:只有当我们可以使用inputstream for httprequest时,如果你试图下载另一个图像,那么它会抛出一个错误,因为"InputStream已经创建"就像这样.所以我们需要在使用httpRequest.abort()下载后中止httprequest; (4认同)