如何在android中的活动之间添加幻灯片动画?
在本文中,我们将学习如何在不同的活动之间添加滑动屏幕动画以使用户体验更好。应用程序由许多活动组成,在活动之间导航幻灯片屏幕动画可能非常有用。如果应用程序中有动画,那么动画在任何应用程序中都起着非常关键的作用,那么它肯定会吸引用户。
方法:
- 创建一个新的Android 资源目录,然后右键单击 res 文件夹 -> Android
资源目录,确保选择资源类型为anim 。 - 为不同的动画创建以下文件。
- 创建slide_in_left.xml并添加以下代码。
slide_in_left.xml
slide_in_right.xml
slide_out_left.xml
slide_out_right.xml
activity_main2.xml
activity_main3.xml
MainActivity2.java
package org.geeksforgeeks.gfgslidescreen; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); } // This function gets invoked automatically when the // user clicks on the button. public void Open3rdActivity(View view) { Intent intent = new Intent(this, MainActivity3.class); startActivity(intent); } // when the user pressed back button this function // get invoked automatically. @Override public void onBackPressed() { super.onBackPressed(); overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right); } }
MainActivity3.java
package org.geeksforgeeks.gfgslidescreen; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity3 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); } }
activity_main.xml
MainActivity.java
package org.geeksforgeeks.gfgslidescreen; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // when the user pressed back button this function // get invoked automatically. public void OpenSecondActivity(View view) { Intent intent = new Intent(this, MainActivity2.class); startActivity(intent); overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); } }
style.xml
- 创建slide_in_right.xml并添加以下代码。
slide_in_right.xml
- 创建 slide_out_left.xml 并添加以下代码。
slide_out_left.xml
- 创建 slide_out_right.xml 并添加以下代码。
slide_out_right.xml
- 创建slide_in_left.xml并添加以下代码。
- 现在创建activity_main2.xml文件。添加以下代码。在这个文件中,我们将 onClick 属性添加到我们的按钮,该属性将在单击时调用open3rdActivity函数。
activity_main2.xml
- 现在创建activity_main3.xml文件。添加以下代码,它将在布局中添加一个文本视图。
activity_main3.xml
- 现在创建MainActivity2。 Java文件。添加以下代码。这里我们添加了一个函数, Open3rdActivity ,它在按钮被点击时被调用。它使用意图打开MainActivity3 。我们还重写了 onBackPressed函数来添加从当前活动返回的动画。
主要活动2。Java
package org.geeksforgeeks.gfgslidescreen; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); } // This function gets invoked automatically when the // user clicks on the button. public void Open3rdActivity(View view) { Intent intent = new Intent(this, MainActivity3.class); startActivity(intent); } // when the user pressed back button this function // get invoked automatically. @Override public void onBackPressed() { super.onBackPressed(); overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right); } }
- 现在创建MainActivity3。 Java文件。添加以下代码。
主要活动 3。Java
package org.geeksforgeeks.gfgslidescreen; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity3 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); } }
- 现在在activity_main.xml文件中添加以下代码。在此文件中,我们将onClick 属性添加到我们的按钮。
activity_main.xml
- 现在在MainActivity 中添加以下代码。 Java文件。在这里,我们添加了函数OpenSecondActivity ,它在单击按钮时被调用。 t 使用意图打开MainActivity3 。同样在函数中,我们添加了过渡到MainActivity2的动画。
主要活动。Java
package org.geeksforgeeks.gfgslidescreen; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // when the user pressed back button this function // get invoked automatically. public void OpenSecondActivity(View view) { Intent intent = new Intent(this, MainActivity2.class); startActivity(intent); overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); } }
不要忘记在Manifest文件中添加活动。
输出:- 您可以观察到,当用户单击OpenSecondActivity按钮和OpenThirdAcivity按钮时,两个按钮都以不同的动画打开活动。
- 当用户处于第三个活动并按下后退按钮时,默认动画被调用,而当用户处于第二个活动并按下后退按钮时,我们定义的动画被调用。
- 如果你想在整个应用程序中设置动画,你可以按照这个简单的步骤来完成。在style.xml文件中添加以下代码。
样式.xml
- 完成并运行应用程序。