2011-03-15 80 views
1

我正在嘗試製作Android的雙人對戰遊戲。當應用程序啓動時預加載所有圖像

程序結構

Menu.java(菜單活動最初加載)

Game.java(遊戲活動,通過菜單啓動)
GameThread.java(句柄gameloop,調用GameView渲染過程)
GameView.java(處理所有繪製到屏幕)

Graphics.java(商店加載的圖像)

的問題

的問題是,加載所有我需要的位圖的遊戲活動最多需要2秒,因爲有動畫一套15卡所需的許多圖像。爲了避免菜單和遊戲活動之間的大量加載時間,我考慮將所有需要的位圖預加載到Graphics類中,在應用程序第一次啓動時(菜單活動)在新線程中加載,並顯示某種加載動畫。

然後,因爲我無法將Menu存儲從Menu活動傳遞到Game活動,所以我需要將其設置爲Menu活動中的一個靜態對象才能從Game活動訪問它(使用Menu.graphics。 ..)。這是否是一種可怕的方式?我一直認爲使用靜態對象是一個壞主意?我還有什麼其他選擇?

感謝您的幫助提前。

回答

0

我建議你使用AsncTask這個。 Android主文檔網站上還有一篇名爲Painless Threading的文章。

+0

謝謝,AsyncTask絕對看起來很有用。至於從另一個活動中使用預加載的資源,只是讓存儲Graphics的對象變爲靜態,還是有更好的方法可以接受(因爲我不能在活動之間傳遞Graphics對象)? – woodstock365

+0

是的,靜態變量是完全可以接受的。 –

+0

謝謝!我可以問最好的方式來存儲我的圖像嗎?我猜如果我使用數組指向R.drawable.someAsset,那實際上只是存儲一個指針而不是圖像。這些圖像是否都需要加載到位圖中? 此外,用於在xml佈局中的imageViews的資源,我如何製作它以便xml佈局獲取已加載的資源而不是加載新實例?我是否必須通過代碼動態地添加圖像,或者有沒有辦法在XML中引用單例中的圖像? – ThePerson

相關問題