zoukankan      html  css  js  c++  java
  • Android-Activity跳转时动画

    Activity跳转时动画,是在跳转Activity,或者在Activity结束返回 等,用到的进入效果;

    第一种效果展示:

    第一个Activity的代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity01 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my01);
        }
    
        /**
         * 启动另外一个Activity
         * @param view
         */
        public void startNewActivity(View view) {
            startActivity(new Intent(this, MyActivity02.class));
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open,0);
        }
    }
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="启动另外一个Activity"
            android:onClick="startNewActivity"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="第一个Activity"
            android:layout_centerInParent="true"
            android:textSize="22dp"
            />
    
    </RelativeLayout>

    第二个Activity代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity02 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my02);
        }
    
        /**
         * 结束自己
         * @param view
         */
        public void exitThisActivity(View view) {
            finish();
        }
    
        @Override
        public void finish() {
            super.finish();
    
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open, R.anim.activity_close);
        }
    }
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#00f000">
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="结束自己"
            android:onClick="exitThisActivity"
            />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="第二个Activity"
            android:layout_centerInParent="true"
            android:textSize="22dp"
            />
    
    </RelativeLayout>

    R.anim.activity_open.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:fromXDelta="-100%p"
            android:toXDelta="0"
            android:duration="1500"
            />
    </set>

    R.anim.activity_close.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:fromXDelta="0"
            android:toXDelta="100%p"
            android:duration="1500"
            />
    </set>

    第二种效果展示:

    第一个Activity代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity01 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my01);
        }
    
        /**
         * 启动另外一个Activity
         * @param view
         */
        public void startNewActivity(View view) {
            startActivity(new Intent(this, MyActivity02.class));
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open02,R.anim.activity_close02);
        }
    }

    第二个Activity代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity02 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my02);
        }
    
        /**
         * 结束自己
         * @param view
         */
        public void exitThisActivity(View view) {
            finish();
        }
    
        @Override
        public void finish() {
            super.finish();
    
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open02, R.anim.activity_close02);
        }
    }

    R.anim.activity_open02.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <translate android:fromYDelta="-100%p"
                   android:toYDelta="0"
                   android:duration="2500"
            />
    </set>

    R.anim.activity_close02.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <translate android:fromYDelta="0"
                   android:toYDelta="100%p"
                   android:duration="2500"
            />
    </set>

    第三种效果展示:

    第一个Activity的代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity01 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my01);
        }
    
        /**
         * 启动另外一个Activity
         * @param view
         */
        public void startNewActivity(View view) {
            startActivity(new Intent(this, MyActivity02.class));
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open02, 0);
        }
    }

    第二个Activity的代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity02 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my02);
        }
    
        /**
         * 结束自己
         * @param view
         */
        public void exitThisActivity(View view) {
            finish();
        }
    
        @Override
        public void finish() {
            super.finish();
    
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open03, 0);
        }
    }

    R.anim.activity_open02.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <translate android:fromYDelta="-100%p"
                   android:toYDelta="0"
                   android:duration="2500"
            />
    
    </set>

    R.anim.activity_open03.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <translate android:fromYDelta="100%p"
                   android:toYDelta="0"
                   android:duration="2500"
            />
    
    </set>

    第四种效果展示:

    第一个Activity的代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity01 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my01);
        }
    
        /**
         * 启动另外一个Activity
         * @param view
         */
        public void startNewActivity(View view) {
            startActivity(new Intent(this, MyActivity02.class));
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open_anim, 0);
        }
    }

    第二个Activity的代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity02 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my02);
        }
    
        /**
         * 结束自己
         * @param view
         */
        public void exitThisActivity(View view) {
            finish();
        }
    
        @Override
        public void finish() {
            super.finish();
    
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open_anim, 0);
        }
    }

    R.anim.activity_open_anim.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <alpha android:fromAlpha="0"
               android:toAlpha="1"
               android:duration="3600"/>
    
    </set>

    第五种效果展示:

    第一个Activity代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity01 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my01);
        }
    
        /**
         * 启动另外一个Activity
         * @param view
         */
        public void startNewActivity(View view) {
            startActivity(new Intent(this, MyActivity02.class));
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open_anim02, R.anim.activity_close_anim02);
        }
    }

    第二个Activity代码:

    package liudeli.activity.activity_anim;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    
    import liudeli.activity.R;
    
    public class MyActivity02 extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my02);
        }
    
        /**
         * 结束自己
         * @param view
         */
        public void exitThisActivity(View view) {
            finish();
        }
    
        @Override
        public void finish() {
            super.finish();
    
            /**
             * 参数一:新的Activity MyActivity02 进入时的动画...
             * 参数二:当前自己的Activity 动起来的动画
             */
            overridePendingTransition(R.anim.activity_open_anim02, R.anim.activity_close_anim02);
        }
    }
    R.anim.activity_open_anim02
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <rotate android:fromDegrees="180"
                android:toDegrees="0"
                android:duration="2000"
            />
    
    </set>
    R.anim.activity_close_anim02
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <rotate android:fromDegrees="0"
                android:toDegrees="-180"
                android:duration="2000"
            />
    
    </set>
  • 相关阅读:
    0309. Best Time to Buy and Sell Stock with Cooldown (M)
    0621. Task Scheduler (M)
    0106. Construct Binary Tree from Inorder and Postorder Traversal (M)
    0258. Add Digits (E)
    0154. Find Minimum in Rotated Sorted Array II (H)
    0797. All Paths From Source to Target (M)
    0260. Single Number III (M)
    0072. Edit Distance (H)
    0103. Binary Tree Zigzag Level Order Traversal (M)
    0312. Burst Balloons (H)
  • 原文地址:https://www.cnblogs.com/android-deli/p/10173791.html
Copyright © 2011-2022 走看看