【发布时间】:2014-01-19 17:27:55
【问题描述】:
我在画布上播放了一个 gif。我的 gif 一直在循环播放。有谁知道如何从循环中发现它?这是我的代码:
if (movieStart == 0) {
movieStart = (int) now;
}
if (mMovie != null) {
int relTime = (int) ((now - movieStart) % mMovie.duration());
mMovie.setTime(relTime);
mMovie.draw(canvas, getWidth() / 2 - mMovie.width(), getHeight() / 2
- mMovie.height());
this.invalidate();
}
我的猜测是,如果我使用 setTime,我可以让它运行良好。但我找不到 setTime 的任何文档?它的具体作用是什么?
附加试用版 1
if (movieStart == 0) {
movieStart = (int) now;
}
while (mMovieLoop-- > 0) {
if (mMovie != null) {
int relTime = (int) ((now - movieStart) % mMovie.duration());
mMovie.setTime(relTime);
mMovie.draw(canvas, getWidth() / 2 - mMovie.width(), getHeight() / 2
- mMovie.height());
this.invalidate();
}
}
附加试用版 2
if (movieStart == 0) {
movieStart = (int) now;
}
if (mMovie != null) {
int relTime = (int) ((now - movieStart) % mMovie.duration());
mMovie.setTime(relTime);
mMovie.draw(canvas, getWidth() / 2 - mMovie.width(), getHeight() / 2
- mMovie.height());
while (mMovieLoop-- > 0) {
this.invalidate();
}
}
我的 gif 也是由 4 帧组成的。
【问题讨论】:
-
我很确定 gif 是用来重复循环的。 .gif 动画就是这样制作的。
-
好吧,如果我不调用 invalidate 它根本就没有动画。所以我希望有一种方法可以控制我调用 invalidate 的次数以使其工作。我将发布仍然无法正常工作的循环代码。
标签: android android-layout animated-gif movie