从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显示,并且在延迟时长后再去重复执行上一个步骤。
Android GifLib实现高效加载git图片
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫Glide的图片加载库,作者是bumptech。这...
- 【嵌牛导读】:安卓上使用摄像头获取图片,使用NATIVE的OPENCV方法进行图像拼接。文中的几个知识点:使用In...