Android,C#:Alpha动画仅在初始alpha为1时有效。无法从0开始?

时间:2017-11-29 15:44:07

标签: c# android

在我的应用中,我想要一个图像按钮来通过动画更改其alpha。 图像按钮的alpha位于oncreate 0。它是不可见的。现在,当我点击某个按钮然后去:

Onclick
{
    mybutton.Alpha = 1f;
};

然后它将我的按钮alpha更改为1. Ergo按钮可见。

我现在决定,我不希望按钮只在一帧中从0变为1,而是像动画那样id。从0到1在wihtin 1秒说。所以我写了这个函数:

private void AnimForBtnAwesome(float intAnimateToAlpha)
{
    AlphaAnimation animation = null;
    animation = new AlphaAnimation(0, intAnimateToAlpha);
    animation.FillAfter = true;
    animation.SetInterpolator(this, Android.Resource.Animation.AccelerateDecelerateInterpolator);
    animation.Duration = 1000;
    btnAwesome.StartAnimation(animation);
}

除非我的按钮的初始alpha设置为1(在oncreate中),否则此函数会。 但我希望我的按钮在单击某个按钮(上面onclick)之前不可见。

当我在oncreate中将所述按钮的初始alpha设置为1并且动画开始时,它基本上消失了一帧,然后逐渐消失,直到一秒钟之前。这是非常愚蠢的,似乎很容易解决。然而,我无法找出原因,以及如何绕过它。也许有另一种方法隐藏按钮而不调整alpha?虽然这似乎太麻烦了。为什么不通过动画将其初始alpha值更改为1?

1 个答案:

答案 0 :(得分:2)

您可以尝试将AnimationListener添加到Alpha动画中。在动画开始时,将按钮可见性设置为可见,此时您应该能够在初始alpha为0时看到alpha更改。

如果您想要动画结束,可以根据需要设置视图的可见性。