我正在尝试创建一个动画,它会将文本视图向左滑动并从右侧再次滑入。从本质上讲,这将与秒表和秒表中使用的文字效果相同。计时器应用程序(sportstracklive是开发人员)。
我可以使用这些动画集中的任何一个独占另一个并且它工作正常,完全符合我的要求。但是一旦我尝试一起使用它们,TextView就会在整个过程中闪烁大约1秒钟。删除startOffset按预期工作。两个动画集同时运行。
这是XML:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:toXDelta="-25%"
android:fromYDelta="0%"
android:toYDelta="0%"
android:duration="@android:integer/config_shortAnimTime"
/>
<alpha
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="@android:integer/config_shortAnimTime"
/>
<set>
<translate
android:fromXDelta="25%"
android:toXDelta="0%"
android:fromYDelta="0%"
android:toYDelta="0%"
android:startOffset="@android:integer/config_shortAnimTime"
android:duration="@android:integer/config_shortAnimTime"
/>
<alpha
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:startOffset="@android:integer/config_shortAnimTime"
android:duration="@android:integer/config_shortAnimTime"
/>
</set>
</set>
这是运行它的冗长的Java代码:
AnimationSet mSlideRightToLeft =
(AnimationSet) AnimationUtils.loadAnimation(this, R.anim.slide_right_to_left);
mMyTextView.startAnimation(mSlideRightToLeft);
答案 0 :(得分:2)
Justinl的评论是正确的。几个月前,我遇到了完全相同的问题。删除其他动画周围的set标签,并保留startOffsets。
接下来删除代码中的动画集,然后执行正常的加载动画:
Animation a = AnimationUtils.loadAnimation(this, R.anim.slide_right_to_left);
mMyTextView.startAnimation(a);
编辑:是的,当有多个动画同时出现时,Android似乎不喜欢这种设置。我想你可能需要为每组动画创建单独的文件,然后通过程序中的AnimationSet配置它们。