我的代码在这里,我的问题是,当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);
}
答案 0 :(得分:0)
您也可以致电anim.cancel()
;但你也应该立即致电anim.reset();
。然后当你想再次启动它时,只需在视图上调用startAnimation。