app直播原始碼,自定義兩種Activity切換動畫實現

zhibo系統開發發表於2022-03-16

app直播原始碼,自定義兩種Activity切換動畫實現

法一:指定某個Activity的切換動畫

設定開啟新Activity時展示的動畫

在呼叫startActivity之後呼叫overridePendingTransition

findViewById(R.id.btn).setOnClickListener(v -> {
    startActivity(new Intent(this, MainActivity2.class));
    // 下一個activity的進入動畫,當前activity的退出動畫
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
});


設定關閉當前Activity時展示的動畫

在呼叫finish()的之super.finish();後呼叫overridePendingTransition

@Override
public void finish() {
    super.finish();
    // 下一個的進入,自己的退出
    overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
}

TIPS:自定義動畫會覆蓋全域性動畫

法二:定義全域性動畫

在res/values/styles.xml檔案中新建style:

<style name="CustomActivityAnimation" parent="android:Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
    <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
    <item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item>
    <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>
</style>

在應用的 Theme(主題) 中應用上面新建的CustomActivityAnimation:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!--其他省略...-->
    <item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item>
</style>

動畫檔案

在res/anim資料夾下面新建動畫檔案:

slide_in_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromXDelta="100%p"
        android:toXDelta="0" />
</set>

slide_out_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />
</set>

slide_in_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromXDelta="-100%p"
        android:toXDelta="0" />
</set>

slide_out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromXDelta="0"
        android:toXDelta="100%p" />
</set>

以上就是 app直播原始碼,自定義兩種Activity切換動畫實現,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2871423/,如需轉載,請註明出處,否則將追究法律責任。

相關文章