📜  如何在android中的活动之间添加幻灯片动画?

📅  最后修改于: 2022-05-13 01:55:32.411000             🧑  作者: Mango

如何在android中的活动之间添加幻灯片动画?

在本文中,我们将学习如何在不同的活动之间添加滑动屏幕动画以使用户体验更好。应用程序由许多活动组成,在活动之间导航幻灯片屏幕动画可能非常有用。如果应用程序中有动画,那么动画在任何应用程序中都起着非常关键的作用,那么它肯定会吸引用户。

方法:

  1. 创建一个新的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

      
      
          
      
      

  2. 现在创建activity_main2.xml文件。添加以下代码。在这个文件中,我们将 onClick 属性添加到我们的按钮,该属性将在单击时调用open3rdActivity函数。

    activity_main2.xml

    
    
      
        
      
        

  3. 现在创建activity_main3.xml文件。添加以下代码,它将在布局中添加一个文本视图

    activity_main3.xml

    
    
      
        
      
    
    

  4. 现在创建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);
        }
    }
    

  5. 现在创建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);
        }
    }
    

  6. 现在在activity_main.xml文件中添加以下代码。在此文件中,我们将onClick 属性添加到我们的按钮。

    activity_main.xml

    
    
      
        
      
        

  7. 现在在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按钮时,两个按钮都以不同的动画打开活动。
    • 当用户处于第三个活动并按下后退按钮时,默认动画被调用,而当用户处于第二个活动并按下后退按钮时,我们定义的动画被调用。

  8. 如果你想在整个应用程序中设置动画,你可以按照这个简单的步骤来完成。在style.xml文件中添加以下代码。

    样式.xml

    
        
        
      
        
    
    

  9. 完成并运行应用程序。