如何获得“AnimationDrawable”事件

时间:2012-06-21 04:33:44

标签: android animation drawable

我正在开发游戏应用程序,并使用 AnimationDrawable 进行图像更改。     但问题是我希望当动画完成时imageview不可见。那我该怎么办呢     为了这。

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);

提前致谢。

1 个答案:

答案 0 :(得分:0)

没有任何事件或听众会通知您。您只需要应用技巧

使用mAnimation.getNumberOfFrames();获取总帧数,因为每帧将持续50ms。所以你的动画应该以{{1​​}}毫秒结束。

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

结论是,一旦动画开始,你将使你的mAnimation.getNumberOfFrames() * 50在450ms后不可见。