gpt4 book ai didi

android - 在不使用 webview 的情况下在 android 中播放.gif 图像

转载 作者:行者123 更新时间:2023-11-30 04:05:07 25 4
gpt4 key购买 nike

我试过这样,我在网上找到了播放gif图片的方法:

private class MYGIFView extends View {

Movie movie;
InputStream is = null;
long moviestart;

public MYGIFView(Context context) {
super(context);

// Provide your own gif animation file

is = context.getResources().openRawResource(R.drawable.mygif);
movie = Movie.decodeStream(is);

}

@Override
protected void onDraw(Canvas canvas) {

canvas.drawColor(Color.WHITE);
super.onDraw(canvas);
long now = android.os.SystemClock.uptimeMillis();
System.out.println("now=" + now);
if (moviestart == 0) { // first time
moviestart = now;

}
System.out.println("\tmoviestart=" + moviestart);
int relTime = (int) ((now - moviestart) % movie.duration());
System.out.println("time=" + relTime + "\treltime="
+ movie.duration());
movie.setTime(relTime);
movie.draw(canvas, this.getWidth() / 2 - 20,
this.getHeight() / 2 - 40);
this.invalidate();
}

虽然很多人说他们得到了他们想要的结果。

我已将 gif 图像放入可绘制对象中。我得到 movie.duration() null。

请指出我哪里错了,或者有什么办法。

最佳答案

如果没有 WebView,Android 无法播放 GIF 文件。您必须将它分解成帧并自己制作动画。

我在另一个 StackOverflow 帖子上找到了 this bit of software from XoyoSoft ,称为 GifSplitter,可以将 GIF 分成帧。然后你会想要使用 AnimationDrawable将它们结合起来。

它看起来像这样:

// Your files:
res\drawable-xxxx\frame1.jpg
res\drawable-xxxx\frame2.jpg
res\drawable-xxxx\frame3.jpg
// ...
res\drawable-xxxx\frame99.jpg

然后,上面的 AnimationDrawable 文档中有一个示例将展示如何显示这些图像。

最后,您必须加载并播放动画; AnimationDrawable 文档中也对此进行了详细说明。

关于android - 在不使用 webview 的情况下在 android 中播放.gif 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11806320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com