• 一手遮天 Android


    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

    一手遮天 Android - Activity: Activity 之间的跳转动画(单独指定或全局指定)

    示例如下:

    /activity/ActivityDemo4.java

    /**
     * Activity 之间的跳转动画
     * 本例用于演示如何单独指定一个 activity 打开另一个 activity 时的跳转动画
     *
     *
     * 一、单独指定
     * 在 startActivity() 之后通过 overridePendingTransition(int enterAnim, int exitAnim) 指定跳转动画,假设是从 A 跳转到 B,那么
     *     enterAnim - B 的出现动画的资源 id(传 0 代表无动画)
     *     exitAnim - A 的消失动画的资源 id(传 0 代表无动画)
     */
    
    package com.webabcd.androiddemo.activity;
    
    import android.content.Intent;
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    import com.webabcd.androiddemo.R;
    
    public class ActivityDemo4 extends AppCompatActivity {
    
        private Button mButton1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_activity_activitydemo4);
    
            mButton1 = findViewById(R.id.button1);
    
            sample();
        }
    
        private void sample() {
            mButton1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    startActivity(new Intent(ActivityDemo4.this, ActivityDemo4_2.class));
    
                    // 单独指定一个 activity 打开另一个 activity 时的跳转动画
                    overridePendingTransition(R.anim.activity_fade_in, R.anim.activity_fade_out);
                }
            });
        }
    }
    
    

    activityActivityDemo4_2.java

    /**
     * Activity 之间的跳转动画
     * 本例用于演示如何单独指定一个 activity 关闭后,从堆栈中打开之前的 activity 时的跳转动画
     * 本例用于演示如何全局指定一个 activity 打开另一个 activity 时的跳转动画
     *
     *
     * 一、单独指定
     * 在 finish() 之后通过 overridePendingTransition(int enterAnim, int exitAnim) 指定跳转动画,假设是从 A 跳转到 B,然后这里关闭了 B
     *     enterAnim - A 的出现动画的资源 id(传 0 代表无动画)
     *     exitAnim - B 的消失动画的资源 id(传 0 代表无动画)
     *
     *
     * 二、全局指定
     * 关于全局指定 activity 之间的跳转动画请参见 res/values/styles.xml 的 MyTheme_MyActivityAnimation
     */
    
    package com.webabcd.androiddemo.activity;
    
    import android.content.Intent;
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    import com.webabcd.androiddemo.R;
    
    public class ActivityDemo4_2 extends AppCompatActivity {
    
        private Button mButton1;
        private Button mButton2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            // 全局指定跳转动画
            setTheme(R.style.MyTheme_MyActivityAnimation);
    
            setContentView(R.layout.activity_activity_activitydemo4_2);
    
            mButton1 = findViewById(R.id.button1);
            mButton2 = findViewById(R.id.button2);
    
            sample();
        }
    
        private void sample() {
            mButton1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
    
    
            mButton2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    startActivity(new Intent(ActivityDemo4_2.this, ActivityDemo4_3.class));
                }
            });
        }
    
        @Override
        public void finish() {
            super.finish();
    
            // 单独指定一个 activity 关闭后,从堆栈中打开之前的 activity 时的跳转动画
            overridePendingTransition(R.anim.activity_flip_horizontal_in, R.anim.activity_flip_horizontal_out);
        }
    }
    
    

    activityActivityDemo4_3.java

    /**
     * Activity 之间的跳转动画
     * 本例用于演示如何全局指定一个 activity 关闭后,从堆栈中打开之前的 activity 时的跳转动画
     *
     *
     * 一、全局指定
     * 关于全局指定 activity 之间的跳转动画请参见 res/values/styles.xml 的 MyTheme_MyActivityAnimation
     */
    
    package com.webabcd.androiddemo.activity;
    
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    import com.webabcd.androiddemo.R;
    
    public class ActivityDemo4_3 extends AppCompatActivity {
    
        private Button mButton1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            // 全局指定跳转动画
            setTheme(R.style.MyTheme_MyActivityAnimation);
    
            setContentView(R.layout.activity_activity_activitydemo4_3);
    
            mButton1 = findViewById(R.id.button1);
    
            sample();
        }
    
        private void sample() {
            mButton1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
        }
    }
    
    

    /layout/activity_activity_activitydemo4.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/red">
    
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="跳转到另一个 activity"/>
    
    </LinearLayout>
    
    

    /anim/activity_fade_in.xml

    <?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:fromAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="1.0">
    </alpha>
    

    /anim/activity_fade_out.xml

    <?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:toAlpha="0.0">
    </alpha>
    

    /layout/activity_activity_activitydemo4_2.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/green">
    
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="关闭此 activity"/>
    
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="跳转到另一个 activity"/>
    
    </LinearLayout>
    
    

    /anim/activity_flip_horizontal_in.xml

    <?xml version="1.0" encoding="utf-8"?>
    <scale xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:fillAfter="false"
        android:fromXScale="0.0"
        android:fromYScale="1.0"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:startOffset="200"
        android:toXScale="1.0"
        android:toYScale="1.0">
    </scale>
    
    

    /anim/activity_flip_horizontal_out.xml

    <?xml version="1.0" encoding="utf-8"?>
    <scale xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:fillAfter="false"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:toXScale="0.0"
        android:toYScale="1.0">
    </scale>
    
    

    /layout/activity_activity_activitydemo4_3.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/blue">
    
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="关闭此 activity"/>
    
    </LinearLayout>
    
    

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

  • 相关阅读:
    数据库中计算值的更新方法
    多语言系统的数据库设计
    深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔等
    数据库SQL开发的一些要点
    最近工作有点累
    IPv6地址争夺中国再落后 申请量仅全球1.8%
    Nantpad 1.0 has been released!
    又丢了一辆自行车
    搬到新家了.
    我和我的好友的计算机之路.希望能给你的计算机生活点一盞明灯
  • 原文地址:https://www.cnblogs.com/webabcd/p/android_activity_ActivityDemo4.html
Copyright © 2020-2023  润新知