按下按钮时如何停止动画

艾琳·艾哈迈德(Aleem Ahmed)

我希望在按下按钮1时发生两件事。应该反复播放两张图像,使其具有动画和非静态的外观。2.循环播放声音。

并在未按下按钮且手指向上移动时1.声音应停止2.动画应停止。

我现在使用的方法显示在代码中:

    package com.example.newanimation;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;

public class MainActivity extends Activity {

    AnimationDrawable rocketAnimation;

    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ImageView rocketImage = (ImageView) findViewById(R.id.imageView1);
      rocketImage.setBackgroundResource(R.drawable.ball_animation);
      rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
    }

    public boolean onTouchEvent(MotionEvent event) {
      if (event.getAction() == MotionEvent.ACTION_DOWN) {
        rocketAnimation.start();
        return true;
      }
      return super.onTouchEvent(event);
    }

}

XML就像

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/ball01" android:duration="200" />
    <item android:drawable="@drawable/ball02" android:duration="200" />
    <item android:drawable="@drawable/ball03" android:duration="200" />
</animation-list>

我保持android:oneshot =“ false”>而不是“ true”,因为我希望动画在不停止直到按钮被按下之前来回播放,但是当手指从按钮上移时我需要它停止播放。

传承人

在中onTouchEvent(),检查MotionEvent.ACTION_UP是否已按下按钮。

public boolean onTouchEvent(MotionEvent event) {
  if (event.getAction() == MotionEvent.ACTION_UP) {
    if(rocketAnimation.isRunning()){
      rocketAnimation.stop();
    }
  }

  if (event.getAction() == MotionEvent.ACTION_DOWN) {
    if(!rocketAnimation.isRunning()){
      rocketAnimation.start();
    }
  }
  return super.onTouchEvent(event);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章