android中使用gif
16lz
2021-01-24
现在很多app都可以看gif,可是android原生控件却不支持gif,所以要用到第三方,其实显示gif没啥好说的首选
android-gif-drawable
可总是有特殊情况,像我就遇到公司要求用c语言处理gif,android-gif-drawable也是c语言写的,我嫌文件太多就去网上找了另一个c语言写的
AndLibNsgif
这个只有6个文件,java层代码直接抛弃
其实使用Glide也可以显示gif,不过不太好,gif加载多了播放速度就巨慢
glide
先来说说android-gif-drawable吧,使用简单
java加载也简单
try { GifImageView gifImageView = findViewById(R.id.gif_image_view); GifDrawable gifFromResource = new GifDrawable( getResources(), R.drawable.test4 ); gifImageView.setImageDrawable(gifFromResource);} catch (IOException e) { e.printStackTrace();}
还支持各种加载方式,就不一 一列举了
GifDrawable可对gif进行操作,start(),stop()之类的,网上对它的说明很多就不说了
再来说Glide加载gif
GlideApp.with(this).load(R.drawable.test4).into(imageview);
也是很简单的,操作gif也是使用GifDrawable,可以这样获取GifDrawable
GlideApp.with(this).load(R.drawable.test4).listener(new RequestListener() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { GifDrawable gifDrawable = (GifDrawable) resource; return false; }}).into(imageView);
也就是调用start()或stop()
如果应用gif使用的多,推荐用android-gif-drawable如果不多就用Glide也能应付
最后说说AndLibNsgif,效率是有的,不过java代码bug太多,只是一个简单的移植,不过c代码没什么bug,拿来用完全没问题,也是很强大的
更多相关文章
- C语言函数的递归(上)
- Android(安卓)Tween动画之RotateAnimation实现图片不停旋转
- Android窗口标题显示操作
- WebView使用中js调用java代码时targetSdkVersion大于17时,无法调
- 【第一行代码笔记】(一)
- Android之SQLite数据库操作
- 移植FFmpeg到android ics
- Android(安卓)Studio4如何在查看低版本API类的源代码?
- android ViewFlipper使用示例(注册引导页)