时间:2021-05-19
起因
最近在项目中遇到需要在界面上显示一个本地的 GIF 图。按照惯例我直接用了 Glide 框架来实现。
Glide 地址: https://github.com/bumptech/glide
我用的 Glide版本为 4.0.0-RC1 , 具体的实现代码如下:
Glide.with( this ).asGif().load( R.drawable.yiba_location ).into( location_image ) ;运行的效果很卡顿,我怀疑是不是方法没有用对,调了压缩模式,还是卡顿;调了缓存模式,还是卡顿。看了一下我的 gif 图,大小还是 800K ,是不是图片太大了,换了一张 100K 的 gif 图,这次显示的效果很好,gif 图播放的很流畅。至此,得出结论:Glide 框架自身的原因,播放大尺寸的 Gif 图的效果不是很理想。
方案
Glide 不行,那么就要另想其他方案,就去 github 上找一下。
排名第一的 android-gif-drawable 库 start 有 4.8K , 这个应该不错,试试吧。
android-gif-drawable : https://github.com/koral--/android-gif-drawable
引用:
compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.7'直接把布局文件中的 ImageView 替换为 GifImageView
<pl.droidsonroids.gif.GifImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/yiba_location " />运行起来看看,果然很好啊,播放的很流畅,果断采用此方案。
探寻其他的属性:
GifImageView gifImageView = (GifImageView) findViewById(R.id.gifImageView);GifDrawable gifDrawable = (GifDrawable) gifImageView.getDrawable();通过 GifImageView 对象获取到 GifDrawable 对象。
gifDrawable.start(); //开始播放gifDrawable.stop(); //停止播放gifDrawable.reset(); //复位,重新开始播放gifDrawable.isRunning(); //是否正在播放gifDrawable.setLoopCount( 2 ); //设置播放的次数,播放完了就自动停止gifDrawable.getCurrentLoop(); //获取正在播放的次数gifDrawable.getCurrentPosition ; //获取现在到从开始播放所经历的时间gifDrawable.getDuration() ; //获取播放一次所需要的时间总结
以上所述是小编给大家介绍的在Android 加载GIF图最佳实践方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言Glide是Google推荐的图片加载库,它可以支持来自url,Android资源,文件,Uri中的图片加载,同时还支持gif图片的加载,以及各种图片显示前
前言Glide是Google推荐的图片加载库,它可以支持来自url,Android资源,文件,Uri中的图片加载,同时还支持gif图片的加载,以及各种图片显示前
在android中不支持gif格式的图片,但是由于我希望在我的程序中刚刚加载的时候有一个小人在跑步表示正在加载。而这个小人跑就是一个gif图片。也就是希望程序一
如果已经确定一个网站项目适合长滚动页面设计,那么需要记住一些最佳实践,以确保它提供最佳用户体验。 首先,丢掉页脚!随着内容继续加载,页脚将继续从页面底部推出。
添加字体不应该对性能产生负面影响。在本文中,我们将探讨在Vue应用程序中加载字体的最佳实践。正确声明font-face的字体确保正确声明字体是加载字体的重要方面