2012-06-21 56 views
0

我正在研究游戏应用程序,我使用AnimationDrawable进行图像更改。 但问题是我希望imageview在动画完成后不可见。因此,我应该怎么做 。如何获得“AnimationDrawable”事件

My code is like this... 

mAnimation = new AnimationDrawable(); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d5),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d4),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d3),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d2),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d1),150); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d2),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d3),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d4),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.d5),50); 
     mAnimation.addFrame(getResources().getDrawable(R.drawable.new_transparent),50); 


     mAnimation.setOneShot(true); 
     mDogImage.setImageDrawable(mAnimation); 

在此先感谢。

回答

0

没有任何事件或监听器将通知you.You只需要申请的伎俩

使用mAnimation.getNumberOfFrames();获得总帧数和因为对50ms.So动画应该是每帧会持续多长时间结束于mAnimation.getNumberOfFrames() * 50毫秒。

例如,如果你有9个帧,每个帧的持续时间为50ms,那么你的动画将在450ms结束。

因此,结论将是你会让你的ImageView一旦动画开始后450ms隐形。