【问题标题】:Fade in animation for Activity淡入 Activity 的动画
【发布时间】:2018-12-28 02:33:01
【问题描述】:

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

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

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

提前致谢。

【问题讨论】:

标签: android animation


【解决方案1】:

这是淡入淡出动画的代码 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】:

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

    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”文件夹并添加这2个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"
    

    希望它会有所帮助。

    【讨论】:

    • 我认为“overridePendingTransition”在最新的 API 中使用。我说的对吗?
    • 在我的应用程序中,我使用的是 android api 2.2 版,我认为这是公平的。
    • 好的moujib,谢谢。我会在尝试后让你知道 cmets。再次感谢您的帮助。
    【解决方案3】:

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

    【讨论】:

    • 啊。该开发人员链接很有帮助。谢谢。我几乎正在考虑检查 API SDK 示例的项目。 :)
    【解决方案4】:

    Android Animation

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

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-08-30
        • 2014-01-20
        • 2012-12-18
        • 1970-01-01
        • 2019-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        相关资源
        最近更新 更多