2010-10-21 128 views
2

我正在開發我的第一款Android遊戲,而且我在使用戶界面非常流暢的時候遇到了一些困難。我花了幾個小時搜索一下,但沒有運氣,我可能只是在尋找錯誤的東西。Android Activity.setContentView(),平滑過渡?

我有兩個不同的XML佈局資源,其中每個佈局只包含一個SurfaceView子類。當我調用activity.setContentView(R.layout.second_layout)從第一個佈局轉換到第二個佈局時,會有一段顯着的時間段,在這兩個時間段之間會顯示一個黑色屏幕(頂部有一個小白條)觀點。

我試過了各種各樣的東西,如;在運行時手動構建第二個視圖(即不使用佈局XML文件),在activity.setContentView(R.layout.second_layout)之後調用activity.overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out)和試圖在視圖加載之前渲染到畫布(原來畫布不可用)。

我沒有看到其他遊戲(或應用程序)有這個問題,所以我認爲有一個相當簡單的解決方案。

如果您需要關於我的特殊情況的更多信息以幫助解決,請告訴我缺少哪些信息。任何幫助將主要讚賞。

+0

環顧四周我開始懷疑我是否應該爲第二個佈局創建一個單獨的Activity。最初我不想創造一個,因爲我沒有覺得我需要一個,因爲遊戲的設置方式以及正在進行的轉換。 也許我還沒有考慮Android的心態。將使用單獨的活動解決我的困境? – 2010-10-21 18:26:19

回答

1

更新:下面我的答案寫於2010年。從那時起Fragments已經成爲一種常態,特別是由於片段嵌套成爲可能,並支持庫允許在向後兼容的方式使用此功能。因此,您可以使用一個Activity並在該Activity的視圖層次結構中使用推送和彈出片段,而不是轉換爲新的Activity來執行新的「用戶任務」。動畫也可以作爲片段交易的一部分來執行(例如Fragment transaction animation: slide in and slide out)。

發佈這個問題後不久,這就變得非常明顯了,但是我認爲我應該回到這裏並且向其他人說清楚。 Android開發活動是積極的方式。不要因爲一個單獨的活動的過渡可能看起來太小,這個事實使得Android的基礎是built around the idea of an Activity