嘗試:
YourAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) { }
@Override
public void onAnimationEnd(Animation animation) {
//Ended
}
@Override
public void onAnimationRepeat(Animation animation) { }
});
編輯:哎呀。沒有閱讀可繪製的部分。下面是我用它來檢查是否所有的幀是通過遞歸函數:
private void checkIfAnimationDone(AnimationDrawable anim){
final AnimationDrawable a = anim;
int timeBetweenChecks = 300;
Handler h = new Handler();
h.postDelayed(new Runnable(){
public void run(){
if (a.getCurrent() != a.getFrame(a.getNumberOfFrames() - 1)){
checkIfAnimationDone(a);
} else{
Toast.makeText(getApplicationContext(), "ANIMATION DONE!", Toast.LENGTH_SHORT).show();
}
}
}, timeBetweenChecks);
};
您也可以登錄的時間,當你啓動動畫,並添加持續時間(你的手知道之前)將其獲得的結局時間。但是,這可能不準確,因爲設置和啓動動畫也需要一些時間。