我在应用程序中实现AnimationDrawable时遇到问题。我引用了开发人员指南来实现动画。无论出于何种原因,在播放动画后,第一帧和最后一帧在屏幕上仍然可见。
我的xml文件如下所示:
<animation-list android:id="@+id/selected"
android:oneshot="true" xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bubbles_1hd" android:duration="50" />
<item android:drawable="@drawable/bubbles_2hd" android:duration="50" />
<item android:drawable="@drawable/bubbles_3hd" android:duration="50" />
<item android:drawable="@drawable/bubbles_4hd" android:duration="50" />
<item android:drawable="@drawable/bubbles_5hd" android:duration="50" />
<item android:drawable="@drawable/bubbles_6hd" android:duration="50" />
<item android:drawable="@drawable/bubbles_7hd" android:duration="50" />
<item android:drawable="@drawable/bubbles_8hd" android:duration="50" />
我的代码如下:
ImageView img = (ImageView)findViewById(R.id.imageAnimation);
img.setBackgroundResource(R.drawable.bubble_animation);
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
frameAnimation.setOneShot(true);
frameAnimation.start();
我能够弄清楚的唯一解决方案。将为隐藏ImageView的动画结束实现延迟计时器设置。但是,我希望有一个更简单,更优雅的解决方案,我错过了。
感谢您的帮助
答案 0 :(得分:0)
我找到的解决方案是为drawable的第一张和最后一张幻灯片插入透明图像。不确定这是否是最佳方法,但它确实有效。