Android-Activity跳轉時動畫

Activity跳轉時動畫,是在跳轉Activity,或者在Activity結束返回 等,用到的進入效果;

 

第一種效果展現:

 

第一個Activity的代碼:android

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代碼:app

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.xmlide

<?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代碼:this

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代碼:spa

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.xml3d

<?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.xmlcode

<?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的代碼:xml

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的代碼:blog

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>
相關文章
相關標籤/搜索