【问题标题】:Android Alpha Animation: Alpha value jumps back to old value after Animation endedAndroid Alpha动画:动画结束后Alpha值跳回旧值
【发布时间】:2012-06-01 03:23:38
【问题描述】:

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

谢谢。

【问题讨论】:

  • 你的“奇怪的解决方案”是要走的路。这是蜂窝之前 android 动画的一个已知问题。更简单的方法是 MikeT 的方法,但它并不总是按您期望的方式工作

标签: android animation alpha alpha-transparency


【解决方案1】:

尝试使用aAnim.setFillAfter(true);

【讨论】:

    【解决方案2】:

    如果你想在动画结束时设置新值,你必须将'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);
    }
    

    【讨论】:

    • aAnim.setFillAfter(true);
    【解决方案3】:

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

    android:animateLayoutChanges=“true”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      相关资源
      最近更新 更多