Android:隐藏动画按钮

时间:2013-09-13 15:31:04

标签: java android animation button hide

我再次陷入困境。这次我有一个动画按钮,动画正在淡入淡出按钮。我想要实现的是当我按下按钮时它应该消失。听起来很容易,但到目前为止我所尝试的并不起作用,我猜它是因为按钮是动画的。

我尝试在onClick()侦听器中设置button.setVisibility(View.Invisible)。我的代码如下:

动画:fade.xml

  
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:fromAlpha="1.0"
       android:toAlpha="0.4"
       android:duration="1000"
       android:repeatCount="infinite"
       android:repeatMode="reverse"
        />  </set>
  

我在我的布局xml中声明了一个名为buttonStartTest的按钮 这是活动中的代码:

Button goButton = (Button) findViewById(R.id.buttonStartTest);

goButton.setVisibility(View.VISIBLE);
goButton.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade));
goButton.setBackgroundResource(R.drawable.roundedcorners);
goButton.setText("Start");
goButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // click action here
        Button goButton = (Button) findViewById(R.id.buttonStartTest);
        goButton.setVisibility(View.INVISIBLE);
    }
});

问题是按钮没有消失..我可以在onClick()中以其他方式改变它。所以我的同伴们,我该如何隐藏按钮?

爱很多, 丹尼尔

3 个答案:

答案 0 :(得分:2)

你应该做一个

goButton.clearAnimation()

在你的点击监听器内部,这样当你点击它时,你将停止动画,然后你可以使用

goButton.setVisibility(View.Gone)

一劳永逸地完全隐藏它。

答案 1 :(得分:2)

查看您的动画文件,它是无限的,因此按钮的alpha值将变为1-0.4,因此您必须先停止动画:
      goButton.clearAnimation();

然后你可以隐藏你的按钮:

goButton.setVisibility(View.INVISIBLE)

答案 2 :(得分:1)

试试这个,如果它有效(我认为会这样),那么我会解释。

goButton.setVisibility(View.GONE);

我相信的原因是因为将其设置为不可见只会使按钮透明。你的动画会覆盖它。

我没有机会亲自测试这个解决方案,因为我不在家用电脑上,但这应该有用 - 请告诉我。