如何在Android中完美地添加幻灯片和弹跳动画?

时间:2014-11-06 05:28:32

标签: android xml animation

我正在尝试动画一个TextView,它从顶部向下滑动到中心,然后反弹并保持停滞状态。我已经放了一个代码并且它完美地反弹但我遇到的问题是它没有显示下滑效果。文本只在动画持续时间结束后出现然后反弹。 xml中的代码放在下面:

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

<translate
    android:duration="1000"
    android:fillAfter="true"
    android:fromYDelta="-100%p"
    android:toYDelta="0%p"/>

<scale
    android:interpolator="@android:anim/bounce_interpolator"
    android:duration="500"
    android:fillAfter="true"
    android:fromXScale="1.0"
    android:fromYScale="0.0"
    android:startOffset="1000"
    android:toXScale="1.0"
    android:toYScale="1.0"/>

如果有人能帮我解决这个问题,那就太好了。

1 个答案:

答案 0 :(得分:1)

我认为你正在使用

android:toYDelta="0%p"

这就是导致问题的原因。您之所以使用它,可能是因为您已将TextView置于屏幕中心。所以在我看来,你不应该在你的布局中集中你的TextView,并在你的xml

中做这样的事情
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
   <TextView 
   android:id="@+id/tv_text"
   android:layout_centerHorizontal="true"
   android:text="23"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   />

然后将您的设置动画更改为此

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

<translate
    android:duration="1000"
    android:fromYDelta="-100%p"
    android:toYDelta="50%p" 
    />

<scale
    android:duration="500"
    android:fromXScale="1.0"
    android:fromYScale="0.0"
    android:interpolator="@android:anim/bounce_interpolator"
    android:startOffset="1000"
    android:toXScale="1.0"
    android:toYScale="1.0" />

</set>