Android GifLib实现高效加载git图片

  • 从android系统源码中拷贝gif-lib的.h以及.c文件到NDK项目中。

  • 调用gif-lib打开gif文件,可以读取到总帧数、每帧之间的时间间隔信息,这些信息可以封装在自定义的结构体中(里面还可以保存当前渲染的帧号),把结构体的引用保存到gif-lib的一个名叫UserData的属性中方便后续使用。打开gif文件可以返回一个jlong类型,它可以理解成一个地址引用,后续直接用gif-lib打开得到GifFileType

  • Java层使用Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888)创建一个空的bitmap对象。width和height参数调用gif-lib获取。

  • 将bitmap对象传递给gif-lib,依据gif-lib的API取出当前帧的内容填充到bitmap,并且获取到下一帧的延迟时长。

  • Java层将填充了内容的bitmap对象设置给ImageView显示,并且在延迟时长后再去重复执行上一个步骤。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容