【问题标题】:Repeat animation when button is press按下按钮时重复动画
【发布时间】:2016-12-06 20:06:48
【问题描述】:

我有一个攻击动画,我想在攻击按钮单击时重复动画,我只能显示一个动画,当再次按下按钮时,动画将不再重复 这是我的动画代码

imgAttack = (ImageView) findViewById(R.id.imgAttack);
        imgAttack.setBackgroundResource(R.drawable.attack_anim);
        attackanimation=(AnimationDrawable)imgAttack.getBackground();

btnAtk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               press=+1;
                MaxHealth-=100;

                swordAtk.start();

               attackanimation.start();




                health.setProgress(MaxHealth);
                if(MaxHealth==0) {


                    health.setProgress(0);
                    Gold=Gold+1;
                    txtGold.setText("Gold:"+Gold);
                    SharedPreferences prefs = RpgActivity.this.getSharedPreferences(getString( R.string.PREF_FILE),MODE_PRIVATE);
                    SharedPreferences.Editor editor = prefs.edit();
                    editor.putInt(getString(R.string.SDR),Gold);
                    editor.apply();
                }
            }
        });

这是我的attack_anim.xml xml

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

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <item android:drawable="@drawable/attak0001" android:duration="100" />
    <item android:drawable="@drawable/attak0002" android:duration="100" />
    <item android:drawable="@drawable/attak0003" android:duration="100" />
    <item android:drawable="@drawable/attak0004" android:duration="100" />
    <item android:drawable="@drawable/attak0005" android:duration="100" />
    <item android:drawable="@drawable/attak0006" android:duration="100" />
    <item android:drawable="@drawable/attak0007" android:duration="100" />

</animation-list>

【问题讨论】:

  • 您有什么要求可以明确说明。因为根据android默认,动画drawable必须继续运行。
  • 我需要重置动画并在按下攻击按钮时再次播放

标签: android xml android-studio animation


【解决方案1】:

你可以在attackAnimation.start()之前做这样的事情

attackAnimation.stop();
attackAnimation.selectDrawable(0);

然后写attackAnimation.start()

【讨论】:

  • 它的播放不受限制,我只想在单击按钮后播放,然后仅在再次单击按钮时再播放一次
  • 我找到了先生,我在 xml 文件中添加了 android:oneshot="true"
  • 是的,你是对的。并且不要称我为先生。只需以朋友的身份打电话。
猜你喜欢
  • 2020-03-06
  • 1970-01-01
  • 2021-04-09
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多