当某些字节错误时,BitmapFactory.decodeStream(inputStream)始终返回null

Rom*_*iel 3 java android byte inputstream bitmap

我正在构建一个Android应用程序,我目前无法从URL中检索位图.这是我正在使用的代码:

public static Bitmap bmpFromURL(URL imageURL){

    Bitmap result = null;

    try {

        HttpURLConnection connection = (HttpURLConnection)imageURL .openConnection();

        connection.setDoInput(true);

        connection.connect();

        InputStream input = connection.getInputStream();

        result = BitmapFactory.decodeStream(input);


    } catch (IOException e) {


        e.printStackTrace();

    }

    return result;

}
Run Code Online (Sandbox Code Playgroud)

当图片写入时,一切正常,但是当某些字节错误时,结果为空.我认为这基本上是可以预料的,因为它是在以下文档中写的BitmapFactory.decodeStream:

如果输入流为空,或者不能用于解码位图,则该函数返回null.流的位置将是读取编码数据后的位置.

问题是,我的错误图片很好地解释了我的网络浏览器,我可以在iPhone平台上这样做.

有没有办法忽略那些错误的像素?也许有选项参数?

任何帮助赞赏

罗曼

Rom*_*Guy 5

这是Android未来版本中修复的已知错误.您可以通过首先将InputStream的内容复制到byte []数组中然后解码字节数组本身来解决它.