我正在开展一个较旧的项目,现在我陷入了困境。
我在一个版面上有9个按钮,它们都连接到调用Intents
的方法。
像这样.. button 1
public void button1_click(View view){
Intent intent = new Intent(getApplicationContext(), Btn1.class);
startActivity(intent);
}
现在我经过几年,我想实现一个简单的动画,按钮会做一些事情(这与动画无关)。
现在我的动画方法 - startAnimation
private void startAnimation(final View view){
final Animation wigle = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_in);
view.startAnimation(wigle);
wigle.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
}
});
}
我想等待动画完成然后开始我的意图。
使用此方法的button 1
看起来像
public void button1_click(View view){
startAnimation(view);
Intent intent = new Intent(getApplicationContext(), Btn1.class);
startActivity(intent);
}
但我的应用程序启动动画,然后启动Intent
。
我应该实现什么才能不对所有按钮实现setAnimationListener
。
答案 0 :(得分:1)
尝试这种方法
private void startAnimation(final View view){
final Animation wigle = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_in);
view.startAnimation(wigle);
wigle.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationRepeat(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
Intent intent;
switch (view.getId()){
case R.id.btn1_id:
intent = new Intent(getApplicationContext(), Btn1.class);
startActivity(intent);
break;
case R.id.btn2_id:
intent = new Intent(getApplicationContext(), Btn2.class);
startActivity(intent);
break;
.......
............
......
}
}
});
}
使用方法
public void button1_click(View view){
startAnimation(view);
disableAllButtons();
}