已编辑:当活动打开下一个活动时,在push_down_in.xml和push_down_out.xml中,仅动画最后一个翻译动画。第一个翻译标签没有动画。我想让动画像两个不同的一半。前半部分必须非常快,另一部分应该很慢。使用默认插值器我没有得到我想要的确切输出。如果有人有这个想法,请帮助我。代码是
pushing_down_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<set android:ordering="sequentially" >
<set>
<translate
android:duration="1000"
android:fromYDelta="0"
android:toYDelta="65%" />
</set>
<set>
<translate
android:duration="1500"
android:fromYDelta="65%"
android:toYDelta="100%p" />
</set>
</set>
</set>
pushing_down_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<set android:ordering="sequentially" >
<set>
<translate
android:duration="500"
android:fromYDelta="-100%p"
android:toYDelta="-35%" />
</set>
<set>
<translate
android:duration="1000"
android:fromYDelta="-65%p"
android:toYDelta="0" />
</set>
</set>
</set>
主要活动
Intent i=new Intent(getApplicationContext(),Activity2.class);
startActivity(i);
overridePendingTransition(R.anim.push_down_out,R.anim.push_down_in);
提前致谢
答案 0 :(得分:0)
我不是100%肯定,但如果您使用android:ordering
,我认为ViewAnimations
会被忽略。
由于您只是尝试制作随时间变慢的动画,因此您也可以使用interpolator
。请参阅以下代码:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:duration="2500"
android:fromYDelta="0"
android:toYDelta="100%" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:duration="1500"
android:fromYDelta="-100%p"
android:toYDelta="0%" />
</set>
所以我基本上只是将你的翻译动画合并为一个并应用了插补器。插补器负责&#34;制作&#34;动画一开始很快,随着时间的推移逐渐减慢。
遵循所有可用的插值器:
@android:anim/accelerate_decelerate_interpolator
@android:anim/accelerate_interpolator
@android:anim/anticipate_interpolator
@android:anim/anticipate_overshoot_interpolator
@android:anim/bounce_interpolator
@android:anim/cycle_interpolator
@android:anim/decelerate_interpolator
@android:anim/linear_interpolator
@android:anim/overshoot_interpolator
您可以在Docs (click)。
中详细了解它们也可以自定义插补器的速度。只需在res/anim
文件夹中创建一个新的* .xml文件,然后添加以下行:
<accelerateDecelerateInterpolator
xmlns:android="http://schemas.android.com/apk/res/android"
android:factor="2" />
有趣的一行是android:factor
您也可以使用自己的公式创建自己的插值器。您可以阅读更多相关信息here (click)。