我正在尝试使用AnimationDrawable动画一组图像。用户应该能够在点击按钮时暂停/恢复动画。我使用setVisible(boolean visible,boolean restart)来实现这一点。不完全确定我是否正确理解了文档,但每次按下暂停按钮时,动画都会从头开始。
有没有办法从相同的帧恢复动画呢?
从 AnimationDrawable API:
如果restart为false,则可绘制项将从最近的帧恢复
仅为清晰起见:
我注意到有几篇旧帖子,但都没有答案。 如何重置AnimationDrawable(此问题的另一面) 如何暂停使用AnimationDrawable的帧动画?[已关闭]
有没有办法从相同的帧恢复动画呢?
从 AnimationDrawable API:
如果restart为false,则可绘制项将从最近的帧恢复
仅为清晰起见:
activityAnimation.setVisible(false,false);
应该停止动画。
activityAnimation.setVisible(true,false);
应该从相同的帧恢复动画(但它没有)。
这是我的代码:
动画start()
在onWindowFocusChanged
中被调用。
动画和按钮都是在onCreate
中创建的:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_content);
ImageView activityImage = (ImageView) findViewById(R.id.activity_image);
activityImage.setBackgroundResource(R.drawable.anim);
activityAnimation = (AnimationDrawable) activityImage.getBackground();
....
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageButton b = (ImageButton) v;
if ((Integer)b.getTag() == R.drawable.pause) {
b.setImageResource(R.drawable.play);
b.setTag(R.drawable.play);
activityAnimation.setVisible(false, false);
} else {
b.setImageResource(R.drawable.pause);
b.setTag(R.drawable.pause);
activityAnimation.setVisible(true, false);
}
}
});...
}
这是 XML
文件的内容
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/one" android:duration="1000" />
<item android:drawable="@drawable/two" android:duration="1000" />
<item android:drawable="@drawable/three" android:duration="1000" />
<item android:drawable="@drawable/four" android:duration="1000" />
</animation-list>
我注意到有几篇旧帖子,但都没有答案。 如何重置AnimationDrawable(此问题的另一面) 如何暂停使用AnimationDrawable的帧动画?[已关闭]