2

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

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

这里“profileActivity”应该以淡入动画打开。我可以在上面的代码中做什么来制作动画。

提前致谢。

4

5 回答 5

7

This is the code of fade animation 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" />
于 2012-05-17T09:23:47.997 回答
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"

希望它会有所帮助。

于 2012-05-17T09:21:15.360 回答
2

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

于 2012-05-17T09:32:14.967 回答
0

安卓动画

您可以将您的欢迎页面与进度条放在上面的链接将帮助您如何在活动中添加动画

于 2012-05-17T09:20:06.153 回答
0

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

startActivity(Intent(this, DestinationActivity::class.java),ActivityOptions.makeCustomAnimation(this,R.anim.abc_fade_in, R.anim.abc_fade_out).toBundle())
于 2018-12-27T18:33:01.523 回答