8

AnimationDrawable を使用してフレーム アニメーションを一時停止するにはどうすればよいですか?

4

2 に答える 2

25

このスレッドはかなり古いと思いますが、アニメーションを一時停止する方法を探していたとき、これがGoogleでの最初の回答だったので、他の人に見てもらうためにここに解決策を投稿します。使用するアニメーションタイプをサブクラス化してから、アニメーションを一時停止および再開するためのメソッドを追加する必要があります。AlphaAnimationの例を次に示します。

public class PausableAlphaAnimation extends AlphaAnimation {

    private long mElapsedAtPause=0;
    private boolean mPaused=false;

    public PausableAlphaAnimation(float fromAlpha, float toAlpha) {
        super(fromAlpha, toAlpha);
    }

    @Override
    public boolean getTransformation(long currentTime, Transformation outTransformation) { 
        if(mPaused && mElapsedAtPause==0) {
            mElapsedAtPause=currentTime-getStartTime();
        }
        if(mPaused)
            setStartTime(currentTime-mElapsedAtPause);
        return super.getTransformation(currentTime, outTransformation);
    }

    public void pause() {
        mElapsedAtPause=0;
        mPaused=true;
    }

    public void resume() {
        mPaused=false;
    }
}

これにより、アニメーションが一時停止している間、開始時間が長くなり、効果的にアニメーションが終了しないようになり、一時停止したときの状態が維持されます。

それが誰かを助けることを願っています。

于 2011-10-20T19:04:43.357 に答える
2

API から:

アニメーションには一時停止メソッドがありません。

http://www.androidjavadoc.com/1.0_r1/android/view/animation/package-summary.html

于 2010-05-19T10:06:04.953 に答える