Android Alpha淡出动画问题

时间:2013-02-01 17:40:03

标签: android animation android-animation fadein

我有一个ImageView元素,我在我的代码中创建并放置在RelativeLayout中。我将此图像设置为Invisible,以使用以下代码开始:

arrow.setVisibility(View.INVISIBLE);

然后我通过XML定义了淡入淡出Alpha动画:

<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>

运行动画:

我只需调用以下内容即可启动动画

myview.startAnimation(myanimation);

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分: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" />

答案 1 :(得分:0)

如果在布局文件中将animateLayoutChanges与动画结合使用,则切换“视图”可见性将导致运行两个动画,并且视图闪烁或闪烁。设置视图可见性会导致布局animateLayoutChanges运行并淡入视图一次,然后您创建的动画也会使第二个动画也运行。