我正在开发游戏应用程序,并使用 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);
提前致谢。
答案 0 :(得分:0)
没有任何事件或听众会通知您。您只需要应用技巧
使用mAnimation.getNumberOfFrames();
获取总帧数,因为每帧将持续50ms。所以你的动画应该以{{1}}毫秒结束。
例如,如果你有9帧,每帧的持续时间为50毫秒,那么你的动画将在450毫秒结束。
结论是,一旦动画开始,你将使你的mAnimation.getNumberOfFrames() * 50
在450ms后不可见。