如何使用AnimationDrawable暂停框架animation?

如何使用AnimationDrawable暂停框架animation?

我意识到这个线程是相当古老的,但是因为这是Google在search暂停animation时的第一个答案,所以我只是将解决scheme发布给其他人看。 你需要做的是inheritance你想使用的animationtypes,然后添加方法来暂停和恢复animation。 这里是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; } } 

这会在animation暂停的时候继续增加开始时间,有效地保持animation的完成状态,并保持静止时的状态。

希望它可以帮助别人。