我想为包含多行文字的视图设置动画,如链接https://dl.dropboxusercontent.com/u/8003415/animation.gif所示。此视图包含两个包含在父视图中的TextView。
此父视图包含两组动画。
1)第一组视图包含多行文本,这些文本从正常缩放到大,然后逐渐淡出。
2)第二组视图包含另一组多个文本,它们逐渐淡化并从小到正。
请注意,缩放和淡入应同时发生。
对于第一组我设计了下面的动画集。这个动画设置比例((1,1)到(1.5,1.5)))并从中心淡化文本块。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/custom_decelerator" >
<scale
android:duration="50"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.5"
android:toYScale="1.5" />
<alpha
android:duration="2000"
android:fromAlpha="2.0"
android:toAlpha="0.0" />
</set>
并且第二组也缩放((-1,-1)到(1,1)))并从中心淡出文本块
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/custom_decelerator" >
<alpha
android:duration="50"
android:fromAlpha="0.0"
android:toAlpha="0.2" />
<scale
android:duration="3000"
android:fromXScale="-1"
android:fromYScale="-1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" />
</set>
问题是,这两组动画与上面链接中指定的动画完全不匹配。
动画似乎不是来自文本块的死角。
答案 0 :(得分:0)
在父视图上同时应用这些动画集不会产生您正在寻找的动画。如果我理解你正确的话:
parentView.startAnimation(animSet1);
parentView.startAnimation(animSet2);
我是对的吗?如果是这样,你做错了!您应该使用以下布局:(这不是真正的XML代码,它是伪XML代码)
<Parent>
<Frame1>
<TextViews>
</Frame1>
<Frame2>
<TextViews>
</Frame2>
</Parent>
通过此设计,您应该将Parent
元素视为FrameLayout
,并且Frame
元素可以是您想要的任何布局。现在,您可以通过以下方式实现您的愿望动画:
frame1.startAnimation(animSet1);
frame2.startAnimation(animSet2);
如果有什么不清楚的地方,请不要犹豫,告诉我。