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



我在布局上有一个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 值保持在动画的最后一个值?

谢谢。

尝试使用aAnim.setFillAfter(true);

如果要

在动画完成后设置新值,则必须将"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);
}

您还应该在XML上检查这一点,在某些情况下会发生

android:animateLayoutChanges="true"

最新更新