代码看demo吧,就一个工具类
解释下控制次数的代码:
gif播放过程是在onDraw中循环diao调用 invalidateView();执行,逻辑主要看下面两个方法:具体看注释
updateAnimationTime();
drawMovieFrame(canvas);
/**
* Calculate current animation time
*/
private void updateAnimationTime() {
long now = android.os.SystemClock.uptimeMillis();
if (mMovieStart == 0) {
mMovieStart = now;
}
//这个获取到的时间不是一定的值,跟手机有关系,
int dur = movie.duration();
if (dur == 0) {
dur = DEFAULT_MOVIE_VIEW_DURATION;
}
//在最后一帧的时候结束
if (now - mMovieStart >= dur) {
this.mPaused = true;
return;
}
mCurrentAnimationTime = (int) ((now - mMovieStart) % dur);
}
github链接:https://github.com/feiyuu/GifView
网友评论