从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...