我有一个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 *当前值)
非常感谢任何帮助。
答案 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运行并淡入视图一次,然后您创建的动画也会使第二个动画也运行。