Android自定义gif播放控件

2019-08-02  本文已影响0人  铁肩侠

代码看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

上一篇 下一篇

猜你喜欢

热点阅读