如何在第一个活动开放时Gif电影播放器​​暂停

时间:2016-05-26 14:08:54

标签: android gif movieplayer

我使用https://github.com/sbakhtiarov/gif-movie-view实现了Gif电影播放器​​,它工作得很好但是我想在第一次开始活动时暂停Gif图像,这意味着首次打开活动,我尝试了 gif1.setPaused(true ); 但它没有工作,所以我该如何解决?请大家帮忙解决一下!!!

2 个答案:

答案 0 :(得分:1)

我使用onDraw方法解决它,只需更改

@Override
    protected void onDraw(Canvas canvas) {
        //for infinitive time animate
        /*if (mMovie != null) {
            if (!mPaused) {
                updateAnimationTime();
                drawMovieFrame(canvas);
                invalidateView();
            } else {
                drawMovieFrame(canvas);
            }
        }*/

        //for one time animate
        final long now = SystemClock.uptimeMillis();
        if (mMovieStart == 0) {
            mMovieStart = (int) now;
        }

        if (mMovie != null) {
            if (!mPaused) {
                int relTime = (int) (now - mMovieStart);

                if (relTime > mMovie.duration()) {
                    relTime = mMovie.duration();
                }

                mMovie.setTime(relTime);
                mMovie.draw(canvas,
                        getWidth() / 2 - mMovie.width() / 2,
                        getHeight() / 2 - mMovie.height() / 2);

                if (relTime < mMovie.duration()) {
                    invalidate();
                }
            } else {
                drawMovieFrame(canvas);
            }
        }
    }

并加入MainActivity

 gif1.setMovieResource(R.drawable.earth_tilt_animation);
        gif1.setPaused(!gif1.isPaused());

答案 1 :(得分:0)

试试这个

gif.setPaused(!gif.isPaused());

因为库中没有 gif1.setPaused(true);

的代码

只需登记 GifMovieView.java

public void setPaused(boolean paused) {
    this.mPaused = paused;

    /**
     * Calculate new movie start time, so that it resumes from the same
     * frame.
     */
    if (!paused) {
        mMovieStart = android.os.SystemClock.uptimeMillis() - mCurrentAnimationTime;
    }

    invalidate();
}

尝试在 GifMovieView.java中创建一个函数

public void stop() {    
    mMovie.stop;
    invalidate();
}

我不确定它是否有效,但希望它能奏效。