2013-02-01 67 views
8

我有一个ImageView元素,我在我的代码中创建并放置在我的RelativeLayout中。我设置该图像是不可见的,使用下面的代码开始:Android Alpha Fade动画问题

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:shareInterpolator="false" 
android:fillEnabled="true" 
android:fillAfter="true" 
android:fillBefore="true"> 

<alpha 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:startOffset="100" 
    android:duration="300" /> 

/set> 

要运行动画:

arrow.setVisibility(View.INVISIBLE); 

我然后经由XML定义淡入阿尔法动画

我只需要调用以下来启动动画

myview.startAnimation(myanimation); 

我看到的问题是,我的ani mation会导致ImageView在完全可见的情况下闪烁,然后经过alpha 0的动画1.我该如何解决这个问题?我无法将初始alpha值设置为0,因为alpha动画基于百分比而不是绝对alpha值。 (例如:0 *当前值到1 *当前值)

任何帮助将不胜感激。

+0

那么它看起来像这个问题是由于在完成另一个不同视图对象的动画时运行动画。任何人都可以推荐修补程序 –

+0

Android会照顾取消同一视图中的另一个动画。你说这是一个*不同*的视图,有干扰动画。也许你可以通过'clearAnimation()'取消它? –

+0

我开始认为这个问题只是一个Android错误。我在其他地方看到过,没有回答,我所做的动画也没有真正干涉。它只是当另一个结束时我开始淡入动画。我尝试了clearAnimation,但没有运气。我仍然得到闪烁 –

回答

1

我认为问题是,与这行代码:

android:fillBefore="true" 

这里,试试这个代码,而不是,它为我工作:

<?xml version="1.0" encoding="UTF-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="2000" 
    android:fillAfter="true" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" /> 
+0

我遇到了同样的问题。在我的例子'introAnimation.setFillBefore(true);'解决了这个问题 –