-1

当我单击图像框时,我使用此代码在另一个对象上运行动画并通过 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); ???我放这个是因为我的动画运行了一次并且不会重置!请帮我

4

5 回答 5

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) {}
            });

于 2015-12-30T23:01:18.530 回答
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
    }


});
于 2013-03-29T05:35:57.090 回答
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);


    }
});
于 2013-03-29T07:36:40.667 回答
0

在调用 View.INVISIBLE 或 GONE 之前,在正在执行动画的视图上调用 clearAnimation() 可以解决问题。

于 2013-08-12T18:47:27.200 回答
-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
};
于 2013-03-29T05:36:05.313 回答