猿问

如何在 Android 中多次播放动画 drawable?

我有一个来自 png 和 android:oneshot="true" 的可绘制动画,因为我不希望动画不断播放,但只有在我激活它时才播放。问题是它只播放一次,当我尝试时myAnimation.play();它不会再次播放。


我试过myAnimation.stop();并再次播放,但它使动画在动画结束前停止。


当我用 开始动画时,也会发生同样的事情myAnimation.run();,尽管我不知道其中的区别。


//in onCreate() method

imageView = findViewById(R.id.imageView);

imageView.setBackgroundResource(R.drawable.animation_drawable);

myAnimation = (AnimationDrawable) imageView.getBackground();


//Triggers in somewhere else in a thread

myAnimation.start();

//animation_drawable.xml

<?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/animation_drawable" android:oneshot="true">

    <item android:drawable="@drawable/kapali" android:duration="0"/>

    <item android:drawable="@drawable/acik" android:duration="500"/>

    <item android:drawable="@drawable/kapali" android:duration="0"/>

</animation-list>


繁星淼淼
浏览 91回答 1
1回答

绝地无双

在animation_drawable.xml您拥有的中android:oneshot="true",删除它或将其更改为false.尝试使用myAnimation.setOneShot(false);在 start() 方法之前。当你想停止动画使用myAnimation.stop();对于您的情况,在停止动画(或设置 oneshot=true)后,要重新启动动画,请使用myAnimation.setVisible(/*visible=*/true,/*restart=*/true);
随时随地看视频慕课网APP

相关分类

Java
我要回答