一千萬個為什麽

搜索

如何在Android中調用另一個活動時提供動畫?

我有兩個活動A和B.我想要收縮動畫時 當活動B調用A時,活動A調用B並最大化動畫。我不需要動畫xml文件。

當我們在Android中調用另一個Activity時,它會提供默認動畫,然後調用縮小動畫。

我想要的是不應該發生默認動畫,並且應該發生我想要的動畫。

我們可以在調用另一個Activity時實際給出動畫嗎?

最佳答案

從API 16開始,您可以在調用 Context.startActivity(Intent,Bundle)或相關方法。它是通過 ActivityOptions 構建器創建的:

Intent myIntent = new Intent(context, MyActivity.class);
ActivityOptions options = 
   ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.fade_out);
context.startActivity(myIntent, options.toBundle());

不要忘記查看ActivityOptions構建器的其他方法和 ActivityOptionsCompat 如果您使用的是支持庫。



API 5 +:

對於針對API級別5+的應用,有 overridePendingTransition 方法。傳入和傳出動畫需要兩個資源ID。 0 的id將禁用動畫。在 startActivity 調用之後立即調用它。

即:

startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

API 3 +:

您可以使用意圖中的 Intent.FLAG_ACTIVITY_NO_ANIMATION 標誌來阻止默認動畫(從右側滑入)。

即:

Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);

然後在你的Activity中你只需要指定你自己的動畫。

這也適用於1.5 API(Level 3)。

轉載註明原文: 如何在Android中調用另一個活動時提供動畫?