我有一个来自 png 和 android:oneshot="true" 的可绘制动画,因为我不希望动画不断播放,但只有在我激活它时才播放。问题是它只播放一次,当我尝试时myAnimation.play();它不会再次播放。我试过myAnimation.stop();并再次播放,但它使动画在动画结束前停止。当我用 开始动画时,也会发生同样的事情myAnimation.run();,尽管我不知道其中的区别。//in onCreate() methodimageView = findViewById(R.id.imageView);imageView.setBackgroundResource(R.drawable.animation_drawable);myAnimation = (AnimationDrawable) imageView.getBackground();//Triggers in somewhere else in a threadmyAnimation.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>
1 回答
绝地无双
TA贡献1946条经验 获得超4个赞
在animation_drawable.xml
您拥有的中android:oneshot="true"
,删除它或将其更改为false
.
尝试使用
myAnimation.setOneShot(false);
在 start() 方法之前。
当你想停止动画使用
myAnimation.stop();
对于您的情况,在停止动画(或设置 oneshot=true)后,要重新启动动画,请使用
myAnimation.setVisible(/*visible=*/true,/*restart=*/true);
添加回答
举报
0/150
提交
取消