Android Alpha动画:动画结束后,Alpha值会跳回旧值

时间:2012-05-25 14:27:26

标签: android animation alpha alpha-transparency

我在布局上有一个ImageButton视图。如果用户单击ImageButton,该按钮应淡出。

按钮淡出动画将按如下方式启动:

public void buttonClicked(View aButton){

    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f);
    aAnim.setDuration(500);

    aButton.startAnimation(aAnim);

}

这样可行,但只要ImageButton淡出,其Alpha值就会立即跳回到1.0并且按钮再次可见。

我暂时使用动画侦听器解决了它,它将ButtonImage设置为在动画结束时不可见但对我来说这似乎是一个奇怪的解决方案。

如何将Alpha Value按钮保持在动画的最后一个值?

谢谢。

3 个答案:

答案 0 :(得分:26)

尝试使用aAnim.setFillAfter(true);

答案 1 :(得分:1)

如果要在动画结束时设置新值,则必须将'setFillAfter'设置为true。

public void buttonClicked(View aButton){    
    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f);
    aAnim.setDuration(500);

    aAnim.setFillAfter(true);
    aButton.startAnimation(aAnim);
}

答案 2 :(得分:0)

在某些情况下,您还应该在XML上进行检查

android:animateLayoutChanges =“ true”