Android GIF 编解码
最近在研究GIF在Android上的實現(xiàn),并有一些心得。現(xiàn)在分享出來,希望跟大家能一起實現(xiàn)。
起初看到GIF在手機(jī)上的實現(xiàn),是在iphone上的gif快手的一個應(yīng)用,感覺還不錯,也想在android上實現(xiàn),后來去查了一下。原來Android上也有了,也叫GIF快手,下了一個,體驗還不錯的說。反編譯出來(不好意思啦,你應(yīng)該用混淆編譯的嘛)。發(fā)現(xiàn)解碼是用的java算法,但是編碼是調(diào)用的jni。好吧,接下來就是Google了。
關(guān)于gif的編解碼還是有蠻多的,我找了一個java算法的,然后對應(yīng)著gif快手的解碼算法修改了下,因為java算法里用到了awt,所以在android上要修改。
最后修改成功,大致的過程是:
1.初始化GifDecoder。
2.設(shè)置bitmap和每幀delay時間,
3.開始decode,得到frameCount,
4.通過handler設(shè)置delay,拿到每一幀的buf,然后重繪ondraw就ok了。效果還不錯哦
代碼我就不貼了。有需要的點我qq找我要,
至于gif的編碼,蠻糾結(jié)的,我照著gif解碼的demo來反推,到是能將3張圖片加入到一個gif文件里,但是在顯示的時候只顯示第一張圖片,有點郁悶,編碼的java算法不能完全改成android的。所以會出這樣的問題吧。
好吧,既然不行,那就換別的辦法吧,Google、看到了microsoft的.net類庫的支持
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.gifbitmapdecoder.aspx
哎。不適用,看到別人寫的c算法,或者是java算法,也不是很適用,糾結(jié)啊。求高手,一起研究啊,我找了一些資料,可以一起研究,節(jié)約時間。
如果找到合適的編碼方式,我會及時的公布出來,有不對的地方也請大家指正。tks。
?
?source download
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Android GIF 编解码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JBPM流程部署校验之java利用XSD
- 下一篇: SP 2010: Getting sta