gpt4 book ai didi

android - Android中逐帧动画的问题

转载 作者:搜寻专家 更新时间:2023-11-01 09:10:19 27 4
gpt4 key购买 nike

我在 Android 中的逐帧动画 中遇到问题。实际上我有很多图像作为帧,为此我为不同的动画创建了不同的动画列表文件。在主屏幕上,我有一张背景图片,上面有不同的按钮用于不同的动画。我也完成了动画,但是当我第二次单击按钮时,动画不起作用。意味着它只工作一次。我不明白为什么会这样。这是我的项目的一些代码 fragment 。

动画列表文件:-

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">
<item android:drawable="@drawable/cat_angry0000" android:duration="50" />
<item android:drawable="@drawable/cat_angry0001" android:duration="50" />
<item android:drawable="@drawable/cat_angry0002" android:duration="50" />
<item android:drawable="@drawable/cat_angry0003" android:duration="50" />
<item android:drawable="@drawable/cat_angry0004" android:duration="50" />
<item android:drawable="@drawable/cat_angry0005" android:duration="50" />
<item android:drawable="@drawable/cat_angry0006" android:duration="50" />
<item android:drawable="@drawable/cat_angry0007" android:duration="50" />
<item android:drawable="@drawable/cat_angry0008" android:duration="50" />
<item android:drawable="@drawable/cat_angry0009" android:duration="50" />
<item android:drawable="@drawable/cat_angry0010" android:duration="50" />
<item android:drawable="@drawable/cat_angry0011" android:duration="50" />
<item android:drawable="@drawable/cat_angry0012" android:duration="50" />
<item android:drawable="@drawable/cat_angry0013" android:duration="50" />
<item android:drawable="@drawable/cat_angry0014" android:duration="50" />
<item android:drawable="@drawable/cat_angry0015" android:duration="50" />
<item android:drawable="@drawable/cat_angry0016" android:duration="50" />
<item android:drawable="@drawable/cat_angry0017" android:duration="50" />
<item android:drawable="@drawable/cat_angry0018" android:duration="50" />
<item android:drawable="@drawable/cat_angry0019" android:duration="50" />
<item android:drawable="@drawable/cat_angry0020" android:duration="50" />
<item android:drawable="@drawable/cat_angry0021" android:duration="50" />
<item android:drawable="@drawable/cat_angry0022" android:duration="50" />
<item android:drawable="@drawable/cat_angry0023" android:duration="50" />
<item android:drawable="@drawable/cat_angry0024" android:duration="50" />
<item android:drawable="@drawable/cat_angry0025" android:duration="50" />
</animation-list>

代码:-

ImageView rocketImage;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.catlayout);

rocketImage = (ImageView) findViewById(R.id.backgroundCat);
rocketImage.setImageBitmap(null);
rocketImage.setBackgroundResource(R.anim.angry_tail_animation);
}

public void headButtonClicked(View v) {
final AnimationDrawable mailAnimation = (AnimationDrawable) mMailTab.getBackground();
mMailTab.post(new Runnable() {
public void run() {
if ( mailAnimation != null ) mailAnimation.start();
}
});
}

headButtonClicked 是我放置的启动动画的按钮。它只工作一次。如果有人知道如何解决这个问题,请帮助我。

谢谢

最佳答案

在您的动画 xml 文件中,您添加了 android:oneshot="true" 属性,这意味着您希望动画只播放一次。要再次播放它,您应该将其设为 android:oneshot="false"

更新:

如果您想在每次单击按钮时启动动画,您必须调用 animation.stop(); 以获取之前启动的动画(如果正在运行)。像这样,

if (frameAnimation.isRunning()) {
frameAnimation.stop();
}

else {
frameAnimation.stop();
frameAnimation.start();
}

关于android - Android中逐帧动画的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com