Ind*_*õue 41 java multithreading android inputstream android-3.0-honeycomb
我在将输入流从Web转换为位图时遇到问题.仅当输入图像类型为.BMP(位图)时才会出现问题.在这种情况下:bitmapFactory.decodeStream返回null.
任何提示如何解决这个问题或我应该在哪里继续我的调试?
平台:Android(Honeycomb)
URLConnection conn = url.openConnection();
conn.connect();
inputStream = conn.getInputStream();
bufferedInputStream = new BufferedInputStream(inputStream);
bmp = BitmapFactory.decodeStream(bufferedInputStream);
Run Code Online (Sandbox Code Playgroud)
Ind*_*õue 62
谢谢@Amir指出日志.发现一条线:
decoder->decode returned false
Run Code Online (Sandbox Code Playgroud)
这似乎是一个普遍的问题.进行搜索我发现了一个解决方案.
我以前的代码:
URLConnection conn = url.openConnection();
conn.connect();
inputStream = conn.getInputStream();
bufferedInputStream = new BufferedInputStream(inputStream);
bmp = BitmapFactory.decodeStream(bufferedInputStream);
Run Code Online (Sandbox Code Playgroud)
正在运行的代码:
HttpGet httpRequest = null;
try {
httpRequest = new HttpGet(url.toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
}
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
HttpEntity entity = response.getEntity();
BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);
InputStream instream = bufHttpEntity.getContent();
bmp = BitmapFactory.decodeStream(instream);
Run Code Online (Sandbox Code Playgroud)
这是一行答案
val bitmap = BitmapFactory.decodeStream(inputStream)
Run Code Online (Sandbox Code Playgroud)
返回一个Bitmap