最近在研究GIF在Android上的实现,并有一些心得。现在分享出来,希望跟大家能一起实现。

  起初看到GIF在手机上的实现,是在iphone上的gif快手的一个应用,感觉还不错,也想在android上实现,后来去查了一下。原来Android上也有了,也叫GIF快手,下了一个,体验还不错的说。反编译出来(不好意思啦,你应该用混淆编译的嘛)。发现解码是用的java算法,但是编码是调用的jni。好吧,接下来就是Google了。

  关于gif的编解码还是有蛮多的,我找了一个java算法的,然后对应着gif快手的解码算法修改了下,因为java算法里用到了awt,所以在android上要修改。

  最后修改成功,大致的过程是:

  1.初始化GifDecoder。

  2.设置bitmap和每帧delay时间,

  3.开始decode,得到frameCount,

  4.通过handler设置delay,拿到每一帧的buf,然后重绘ondraw就ok了。效果还不错哦

  代码我就不贴了。有需要的点我qq找我要,

  至于gif的编码,蛮纠结的,我照着gif解码的demo来反推,到是能将3张图片加入到一个gif文件里,但是在显示的时候只显示第一张图片,有点郁闷,编码的java算法不能完全改成android的。所以会出这样的问题吧。

  好吧,既然不行,那就换别的办法吧,Google、看到了microsoft的.net类库的支持

  http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.gifbitmapdecoder.aspx

  哎。不适用,看到别人写的c算法,或者是java算法,也不是很适用,纠结啊。求高手,一起研究啊,我找了一些资料,可以一起研究,节约时间。

  如果找到合适的编码方式,我会及时的公布出来,有不对的地方也请大家指正。tks。

source download

Android GIF 编解码相关推荐

  1. android 解码webp动画,android webp编解码详解

    key words:android decode webp sample 当我敲下键盘的时候有种深深的耻辱感,看到android 4.0支持webp格式的图像,于是我狠命的找提供了什么样的api,nn ...

  2. zbar android解码错误,Android原生编解码接口 MediaCodec 之——踩坑

    关键帧 MediaCodec 有两种方式触发输出关键帧,一是由配置时设置的 KEY_FRAME_RATE和KEY_I_FRAME_INTERVAL参数自动触发,二是运行过程当中经过 setParame ...

  3. android amr-wb 编解码

    平台  PX30 + Android 9.0 + AndroidStudio 4.1.3 概述  在Android 平台上实现AMR-WB的编解码, 要求不高, JAVA也行, C/CPP也行, 可惜 ...

  4. Android图片编解码实现方案(Skia)

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  5. Android原生编解码接口 MediaCodec 之——完全解析

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/gb702250823/article/ ...

  6. Android原生编解码接口MediaCodec详解

    作者:躬行之 了解了音视频的相关知识,可以先阅读同系列文章: 音视频开发基础知识 音频帧.视频帧及其同步 Camera2.MediaCodec录制mp4 MediaCodec 是 Android 中的 ...

  7. android硬编解码MediaCodec

    一 mediacodec简介 MediaCodec 类可以用来访问底层媒体编解码器,即编码器/解码器的组件. 它是 Android 底层多媒体支持架构的一部分(通常与 MediaExtractor,M ...

  8. Android硬编解码接口MediaCodec使用完全解析(一)

    使用异步读取编码(解码)后的数据,效率会大增. 可以直接起一个线程不断地读. ------------------------------------------------------------- ...

  9. Android视频编解码之MediaCodec简单入门

    本篇只是简单入门,后面会继续写文章详细讲解: 由于MediaCodec涉及内容众多,原本想一篇文章把所有内容概括,但是后来发现不太可能,限于自己能力,想要考虑全面太难,我也是刚开始学习需要借助网上的代 ...

最新文章

  1. android自定义控件绘制位置,Android自定义控件之——文字圆形边框(将文字绘制在圆中间)...
  2. 前端开发模式--MV*
  3. 文献记录(part7)--An Improved Biclustering Algorithm and Its Application to Gene Expression ...
  4. Batch_size问题
  5. android 怎么自定义任务栈,Android中的Activity详解--启动模式与任务栈
  6. 博士生想逃离科研,导师还要帮他吗?|Nature专访
  7. CNN(Convolutional Neural Network) 的基础
  8. 3D Slicer源代码编译与调试
  9. 【转】关于PHP的header(P3P: CP=CURa……)
  10. zabbix监控搭建以及客户端安装
  11. Visual Studio中工具--》选项--》源代码管理器--》插件选择说明
  12. java 图片水印旋转,Java实现 图片水印或者文字水印详解
  13. 计算机教室使用与管理制度,《计算机教室使用与管理制度》
  14. vue模板中写html,vue中template的三种写法示例
  15. Java -- Ajax异步访问数据库内容
  16. 语法制导翻译和中间代码生成
  17. 炸金花游戏(1)--炸金花游戏的模型设计和牌力评估
  18. IE浏览器对象不支持Blob属性或方法,IE浏览器不支持canvas toBlob()方法的Polyfill
  19. 博图程序需要手动同步_博图新手使用说明
  20. 全国专科计算机学院排名2015,2021全国专科学校排名 最新高职高专院校排行榜

热门文章

  1. iptables防火墙的连接状态
  2. pox 中 openflow.webservice 组建的学习与使用
  3. XenServer 6.5实战系列之四:XenServer 6.5 Installation
  4. centos7下使用yum安装mysql并创建用户,数据库以及设置远程访问
  5. 【Linux】ps命令
  6. 关于Oracle full outer join 的bug问题分析及处理
  7. Camel In Action 读书笔记 (1)
  8. CentOS 6.3编译安装Nginx1.2.2+MySQL5.5.25a+PHP5.4.5
  9. linux vi文本类常用命令
  10. 【LeetCode】排序