我想在我的应用程序中显示动画GIF图像。 我发现Android本身并不支持GIF动画。
但是它可以使用AnimationDrawable显示动画:
开发>指南>图像和图形>绘图概述
这个例子使用动画保存为框架的应用程序资源,但我需要的是直接显示动画gif。
我的计划是将动画GIF分解为帧,并将每帧添加为可绘制的AnimationDrawable。
有人知道如何从动画GIF中提取帧并将它们转换为可绘制的吗?
我想在我的应用程序中显示动画GIF图像。 我发现Android本身并不支持GIF动画。
但是它可以使用AnimationDrawable显示动画:
开发>指南>图像和图形>绘图概述
这个例子使用动画保存为框架的应用程序资源,但我需要的是直接显示动画gif。
我的计划是将动画GIF分解为帧,并将每帧添加为可绘制的AnimationDrawable。
有人知道如何从动画GIF中提取帧并将它们转换为可绘制的吗?
当前回答
没有人提到Ion或Glide库。它们工作得很好。
与WebView相比,它更容易处理。
其他回答
使用ImageViewEx,一个库,使使用gif像使用ImageView一样简单。
Android实际上可以解码和显示动画gif,使用Android。graphics。movie类。
这没有太多的文档,但是在SDK Reference中有。此外,它被用于ApiDemos在BitmapDecode的例子中的样本与一些动画标志。
更新:
使用滑动:
dependencies {
implementation 'com.github.bumptech.glide:glide:4.9.0'
}
用法:
Glide.with(context).load(GIF_URI).into(new DrawableImageViewTarget(IMAGE_VIEW));
看文档
滑翔
Image Loader Library for Android,由谷歌推荐。
Glide和毕加索的很相似,但比毕加索的快得多。 Glide比毕加索消耗的内存要少。
格莱德有而毕加索没有的东西
能够将GIF动画加载到一个简单的ImageView可能是Glide最有趣的功能。是的,你不能这样对待毕加索。 一些重要的环节-
https://github.com/bumptech/glide http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en
直接从URL到应用程序布局显示动画GIF的简单方法是使用WebView类。
步骤1: 在XML布局中
< WebView android: id =“@ + id / webView” android: layout_width = " 50 dp” android: layout_height = " 50 dp” />
第二步:在活动中
网络视图 wb; wb = (WebView) findViewById(R.id.webView); wb.loadUrl(“https://.......);
步骤3:在Manifest.XML中设置Internet权限
< uses-permission android: name = " android.permission。互联网" / >
步骤4:如果你想让你的GIF背景透明,让GIF适合你的布局
wb.setBackgroundColor (Color.TRANSPARENT); wb.getSettings () .setLoadWithOverviewMode(真正的); wb.getSettings () .setUseWideViewPort(真正的);