ANDROID - 如何清除应用于ImageView的动画列表?

问题描述 投票:1回答:2

我有一个动画列表存储在resanimdraw_circle_violet.xml中。

<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="true"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:duration="10" android:drawable="@drawable/plainimg"/>
    <item android:duration="10" android:drawable="@drawable/circlev1"/>
    <item android:duration="10" android:drawable="@drawable/circlev2"/>
    <item android:duration="10" android:drawable="@drawable/circlev3"/>
    <item android:duration="10" android:drawable="@drawable/circlev4"/>
    <item android:duration="10" android:drawable="@drawable/circlev5"/>
    <item android:duration="10" android:drawable="@drawable/circlev6"/>
    <item android:duration="10" android:drawable="@drawable/circlev7"/>
    <item android:duration="10" android:drawable="@drawable/circlev8"/>
</animation-list>

这个动画被应用到一个ImageView上。

mImageView.setBackgroundResource(R.anim.draw_circle_violet);
        AnimationDrawable frameAnimation = (AnimationDrawable) mImageView
                .getBackground();
        frameAnimation.start();

我点击一个按钮来清除应用在这个ImageView上的动画。

     mImageView.clearAnimation();

但是动画不能被删除。我还尝试了其他方法。

     mImageView.setAnimation(null);

但不成功。

请帮助我。


更新:我已经尝试了

    frameAnimation.stop();

但动画仍然应用于ImageView。有什么理想的方法吗?源码

android animation android-animation
2个回答
0
投票

试试这个。

frameAnimation.stop();

希望能帮到你:)


0
投票

这是个肮脏的方法,但很有效。

setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

如果这不能解决你的问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.