如何取消除Android Studio中特定动画之外的所有动画

时间:2016-06-02 08:26:30

标签: android

我的代码在这里,我的问题是,当if条件满足时,我希望只有一个特定的动画处于活动状态。 您可以看到我的代码,为此,我需要单独关闭所有其他动画以实现我的目标。

我想知道这样做是否干净。

        beaconManager = new BeaconManager(this);
        beaconManager.setBackgroundScanPeriod(2000,20000);
        beaconManager.setRangingListener(new BeaconManager.RangingListener() {
            @Override

            public void onBeaconsDiscovered(Region region, List<Beacon> list) {
                if (!list.isEmpty()) {
                    Beacon nearestBeacon = list.get(0);
                    int number = nearestBeacon.getMajor();

                  if(number == 1479)
                    {
                        Animation an = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.test);
                        blueButton.startAnimation(an);
                        yellowButton.clearAnimation();
                        blueButton2.clearAnimation();
                        orangeButton.clearAnimation();
                        orangeButton2.clearAnimation();
                        purpleButton.clearAnimation();
                        redButton.clearAnimation();
                        greenButton.clearAnimation();


                    }

                    if(number == 7574)
                    {
                        Animation an = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.test);
                        blueButton2.startAnimation(an);
                        blueButton.clearAnimation();
                        yellowButton.clearAnimation();
                        orangeButton.clearAnimation();
                        orangeButton2.clearAnimation();
                        purpleButton.clearAnimation();
                        redButton.clearAnimation();
                        greenButton.clearAnimation();


                    }
                    .
                    . 
                    .
                    if(number == 61120)
                {
                    Animation an = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.test);
                    yellowButton.startAnimation(an);
                    blueButton.clearAnimation();
                    blueButton2.clearAnimation();
                    orangeButton.clearAnimation();
                    orangeButton2.clearAnimation();
                    purpleButton.clearAnimation();
                    redButton.clearAnimation();
                    greenButton.clearAnimation();
                }



            }
        }
    });
    region = new Region("ranged region", null, null, null);
}

1 个答案:

答案 0 :(得分:0)

您也可以致电anim.cancel();但你也应该立即致电anim.reset();。然后当你想再次启动它时,只需在视图上调用startAnimation。