尝试在Android上播放动画GIF(请参阅Android: How do a display a large animated gif given a url?)。这不过是顺利的。在Android 1.5上,Movie.decodeStream()/ decodeFile()返回null。在Android 1.6上,使用我获得的GIF文件,它会返回零大小的电影,持续时间为零 - 显然不够。
引用的问题建议将GIF分割成帧(然后渲染这些)。我到底怎么做到这一点,好吗?
编辑:尝试在Windows中使用GNU giflib打开我的一个GIF。它在第一帧窒息。 GIF本身就可以了,所有浏览器(保存Android的)都可以显示并且可以很好地制作动画。
EDIT2:使用giflib 4.1.4。不确定4.1.6中的内容是什么,但是你去了。下一步:通过NDK为Android构建giflib,以某种方式与Bitmap类集成。
EDIT3:它是giflib。与Bitmap.copyPixelsFromBuffer结合使用。颜色现在都是歪斜的,但基本设计似乎可行。
答案 0 :(得分:1)
giflib 4.1.4和NDK。您必须手动解析GIF中的调色板颜色以匹配Android的ARGBxxxx格式之一,然后通过Bitmap
将像素阵列传递给copyPixelsFromBuffer()
对象。如果你想要透明度和/或动画,你必须浏览扩展块并查找代码为0xf9的扩展块。
在此处共享我的代码以及指南:http://rathertech.blogspot.com/2014/04/splitting-gif-into-frames-on-android.html