我有本工作遵循本指南,其他一些內容以及參考資料。
以這種風格設置的過渡。我把它放在res/transition:
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeBounds>
<targets>
<target android:targetId="@id/ivA" />
<target android:targetId="@id/ivB" />
</targets>
</changeBounds>
<changeImageTransform>
<targets>
<target android:targetId="@id/ivA" />
<target android:targetId="@id/ivB" />
</targets>
</changeImageTransform>
</transitionSet>
在源和目標ImageViews中,您需要添加一個名稱標記。名稱必須相同。
<ImageView
...
android:transitionName="MYTRANSITIONVIEW"
/>
在styles.xml,添加到應用程序的主題:
<item name="android:windowContentTransitions">true</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowSharedElementEnterTransition">@transition/my_transition</item>
<item name="android:windowSharedElementExitTransition">@transition/my_transition</item>
我一個片段中運行這個,所以我開始新的活動是這樣的:
Bundle bundle = null;
if (activity != null) {
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(activity, Frag2_, "MYTRANSITIONVIEW");
bundle = options.toBundle();
}
activity.startActivity(i, bundle);
它的工作原理在API 21客戶端上。它不適用於API 16客戶端,因爲XML標記無效。
我希望這會有所幫助。
輕微的更新,以獲得在退出逆轉移,我不得不打電話
supportFinishAfterTransition();
,而不是結束();
它現在有效,謝謝! – iForests 2014-10-28 03:54:20
我一直試圖讓這個工作,但新活動的輸入轉換淡入與ImageView是舊活動中顯示的最後一件事。退出過渡雖然工作。 – 2014-12-30 19:42:39
@TimmahhTimmahh您是否遵循文檔中的所有步驟?請提供更多信息,謝謝:) – 2014-12-31 11:31:46