淡入动画的动画

时间:2012-05-17 09:14:46

标签: android animation

我是Android新手。当我打开一个新活动时,我需要为开场活动创建一个淡入淡出的动画。例如:目前我在活动“A”,现在我想在按钮点击上打开另一个活动“B”。现在我可以打开没有任何动画的活动。但我想给一个Fade In动画。现在,以下代码用于打开活动。

Intent profileActivity = new Intent(Login.this, Profile.class);
startActivityForResult(profileActivity, 0);

此处“profileActivity”应以淡入动画打开。我可以在上面的代码中制作动画。

提前致谢。

5 个答案:

答案 0 :(得分:7)

只需将此行添加到您的调用意图中:

overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);

它看起来像那样:

Intent intent = new Intent(ActivityA.this, ActivityB.class);
        startActivity(intent);
        overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_left);

然后在“res”文件夹下创建一个“anim”文件夹并添加这两个xml文件

slide_in_left.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="100%"
    android:toXDelta="0%" />

slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="0"
    android:toXDelta="-100%" />

正如你所看到的,我只是在做一个翻译动画,如果你想添加一个褪色效果,只需添加

android:fromAlpha="0.0" android:toAlpha="1.0"

希望它会有所帮助。

答案 1 :(得分:7)

这是淡入淡出动画的代码 R.anim.fade

 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@android:anim/accelerate_interpolator"
           android:fromAlpha="0.0" android:toAlpha="1.0"
           android:duration="@android:integer/config_longAnimTime" />

答案 2 :(得分:2)

感谢@moujib回答,我以前从来都不知道。我所做的是在第二个活动开始后立即手动应用动画。使用overridePendingTransition()更加清晰(它在api 5或更高版本中可用)。除了@moujib答案,你不必自己定义动画淡入淡出,因为Android已经定义了它。看看http://developer.android.com/reference/android/R.anim.html

答案 3 :(得分:0)

Android Animation

你可以把你的欢迎页面带有进度条,上面的链接将帮助你如何在活动中添加动画

答案 4 :(得分:0)

只需使用以下代码行即可从一个活动平稳过渡到另一个活动:

startActivity(Intent(this, DestinationActivity::class.java),ActivityOptions.makeCustomAnimation(this,R.anim.abc_fade_in, R.anim.abc_fade_out).toBundle())