动画不会停止运行

时间:2017-08-14 13:10:53

标签: android animation

我在我的一个图像视图上实现了一个动画。我的问题是动画根本不会停止。我称之为清除所有我将其设置为null将其设置为取消并且它仍然不会停止。

var corsOptions = {
  origin:  process.env.ctxCliente,
  credentials: true
}
app.use(cors(corsOptions));

这里是xml文件

public void tiltani(){
ImageView vault = (ImageView)findViewById(R.id.vault2) ;
Animation tilt = AnimationUtils.loadAnimation(this, R.anim.tilt);

vault.startAnimation(tilt);
}
public void stopani() {
Animation tilt = AnimationUtils.loadAnimation(this, R.anim.tilt);
vault.clearAnimation();
vault.setAnimation(null);
tilt.cancel();
tilt.reset();
}

这是我开始的地方

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="6"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
android:repeatCount="infinite"/>

<rotate
    android:fromDegrees="6"
    android:toDegrees="-2"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="500"
    android:repeatMode="reverse"
    android:repeatCount="infinite"
    />

我尝试在onclick方法中停止/取消所有内容

   Intent intent1 = getIntent();

    if (intent1.hasExtra("id1")) {
        tiltani();

更新

 vault.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                vault.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.chestopen));
                stopani();

1 个答案:

答案 0 :(得分:0)

您可以使用vault.startAnimation(tilt);开始动画,并使用vault.setAnimation(null);停止动画。

您已在stopani()方法中初次初始化动画。您的视图初始化和动画初始化应该是全局的。

您的代码应该是这样的。

ImageView vault = (ImageView)findViewById(R.id.vault2);           //Global variable
Animation tilt = AnimationUtils.loadAnimation(this, R.anim.tilt); //Global variable

public void tiltani(){
    vault.startAnimation(tilt);
}
public void stopani() {
    vault.clearAnimation();
    vault.setAnimation(null);
    tilt.cancel();
    tilt.reset();
}

希望,它会帮助你...... :)