我在很多地方都读过Android没有本机gif支持。结果,我的代码在BitmapFactory.decodeByteArray
失败了。这是我的代码:
URL url = new URL(imgURL); //you can write here any link
HttpURLConnection ucon = (HttpURLConnection)url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(5000);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
image = BitmapFactory.decodeByteArray(baf.toByteArray(), 0, baf.toByteArray().length);
使用调试器我确认标头数据已正确加载并且是GIF格式的。但是一旦解码函数运行,我就会留下空值。我的第一个猜测是我需要做一个GIF - > PNG转换。我怎样才能做到这一点?还有其他选择吗?
答案 0 :(得分:1)
http://code.google.com/p/android-gifview/的GifView课程效果很好。该项目适用于GIF动画,但它也适用于静态GIF。
答案 1 :(得分:0)
因此,尽管Android抱怨GIF并解码失败,我认为该问题存在于我的代码中的其他失败中。我所做的更改导致代码现在正常工作。
Bitmap
对象中的List
文件的存储始终在使用前正确投放。我通过this posting找到了帮助和详细信息,这是一个几乎相同的问题。关于这个问题有一些链接。
最后我根本没有触摸我的Bitmap或InputStream对象,数据正在被正确接收(根据我对GIF头字节的确认)但是使用失败了之后的数据。