我是Android新手。当我打开一个新活动时,我需要为开场活动创建一个淡入淡出的动画。例如:目前我在活动“A”,现在我想在按钮点击上打开另一个活动“B”。现在我可以打开没有任何动画的活动。但我想给一个Fade In动画。现在,以下代码用于打开活动。
Intent profileActivity = new Intent(Login.this, Profile.class);
startActivityForResult(profileActivity, 0);
此处“profileActivity”应以淡入动画打开。我可以在上面的代码中制作动画。
提前致谢。
答案 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)
你可以把你的欢迎页面带有进度条,上面的链接将帮助你如何在活动中添加动画
答案 4 :(得分:0)
只需使用以下代码行即可从一个活动平稳过渡到另一个活动:
startActivity(Intent(this, DestinationActivity::class.java),ActivityOptions.makeCustomAnimation(this,R.anim.abc_fade_in, R.anim.abc_fade_out).toBundle())