我使用此代码来点击图像框,在另一个对象上运行动画,并通过visibility.GONE自行消除。但它不起作用!!这是我的代码:
againbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//answer button on animation
Animation anim2 = AnimationUtils.loadAnimation(MainActivity.this, R.anim.askbtnonanim);
anim2.setFillAfter(true);
askbtn.startAnimation(anim2);
//gone myselft (againbtn)
againbtn.setVisibility(View.GONE);
}
});
如果从这段代码中删除3个动画行,一切正常并且有效,但现在却没有。但为什么?它与anim2.setFillAfter(true)有关; ???我把它放了,因为我的动画运行了一次而且没有重置!请帮帮我
答案 0 :(得分:4)
试试这个 你必须清除视图动画然后你可以setVisibility
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {}
@Override
public void onAnimationEnd(Animation animation) {
view.clearAnimation();
view.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) {}
});
答案 1 :(得分:2)
你应该实现动画监听器,在onAnimationEnd()中你应该执行你的任务...希望下面的代码可以帮助你......
anim2.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
againbtn.setVisibility(View.GONE); //set your button visibility here
}
});
答案 2 :(得分:0)
我认为在动画编码之前设置可见性按钮可能会起作用
againbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//gone myselft (againbtn)
againbtn.setVisibility(View.GONE);
//answer button on animation
Animation anim2 = AnimationUtils.loadAnimation(MainActivity.this, R.anim.askbtnonanim);
anim2.setFillAfter(true);
askbtn.startAnimation(anim2);
}
});
答案 3 :(得分:0)
在调用View.INVISIBLE之前对正在进行动画的视图调用clearAnimation(),或者GONE可以解决问题。
答案 4 :(得分:-1)
在动画结束时使用AnimationListener设置按钮可见性GONE
。
.....
anim2.setAnimationListener(animButnListener);
askbtn.startAnimation(anim2);
AnimationListener animButnListener = new AnimationListener(){
@Override
public void onAnimationEnd(Animation animation) {
// make Button Visibility GONE here
againbtn.setVisibility(View.GONE);
}
//.......other AnimationListener methods
};