編輯:Android游戲開發
玩過Android手機的同學們應該都很清楚手機橫豎屏的機制吧,大部分游戲都是無法橫豎屏切換的, 有的游戲只能豎屏的玩,有的游戲只能橫屏玩,為什麼開發中要強制游戲為單一的屏幕呢?原因很簡單 就是因為切換屏幕後帶來的問題過多開發起來過於麻煩所以大多數游戲都會強制橫屏或者豎屏。的今天我用一個小例子帶同學們盤點一下Android開發中橫豎屏切換的一些開發技巧。
1. 強制橫豎屏
這種方式是最為簡單並且可以避免因為切換屏幕導致的一些開發問題,強制屏幕為橫屏或者豎屏可以用兩種方式來實現, 第一種為代碼實現、第二種為配置文件實現,請同學們閱讀下面這段簡單的例子。
Java代碼AndroidManifest.xml 中設置強制橫屏
XML/HTML代碼通過代碼的方式強制為豎屏
Java代碼AndroidManifest.xml 中設置強制豎屏
XML/HTML代碼2. 橫豎屏切換的響應
如果沒有設置強制橫屏或者豎屏那麼每次橫豎屏切換的時候Activity都會被重新創建一次,這樣就會存在一個問題 橫屏後會把圖片拉伸可能在豎屏時感覺很協調的界面切換到橫屏以後會被拉伸的很難看,比較好的解決辦法是為橫豎屏做兩套圖做兩個布局文件,這樣子程序中只需要監聽屏幕切換的結果 設置不同的布局 繪制不同的圖片即可。
XML/HTML代碼設置後屏幕切換後就不會再次調用OnCreate()方法重新創建這個Activity, 切換屏幕之前程序中的一些數據或者內容就不會因為重新創建Activity導致重置清空。 每當切換橫豎屏的時候系統會自己調用onConfigurationChanged()方法這樣子就可以拿到當前屏幕的橫豎屏狀態,根據狀態就可以做我們想做的事。
Java代碼3. 橫豎屏切換數據的保存
如果說項目必需要實現橫豎屏的切換那麼我們就須要對數據進行保存與讀取,這也是為什麼大部分游戲都不支持橫豎屏切換的原因,因為游戲中存在大量的數據 ,比如玩家屬性、坐標點、游戲狀態、人物屬性等等等等實在是太多了。如果要實現正常切換的話那麼這些數據都須要進行保存與記錄,其實相對軟件開發來說做橫豎屏切換的到挺多的,畢竟軟件當前Activity中保存的數據不會有游戲那麼多呵呵,廢話就不多說了我分享一個橫豎屏切換保存數據與讀取數據的方法。
比如橫屏切換豎屏實際上是先把當前的橫屏的Activity殺掉 然後重新創建一個豎屏的Activity,我們可以使用onSaveInstanceState()方法保存數據,它是在橫屏Activity將殺死前調用,可以將須要保存的數據放入Bundle封裝在系統中,切換豎屏後這個Activity又重新被創建 這樣可以在onCreate(Bundle)或者onRestoreInstanceState(Bundle)方法中來回復之前保存在Bundle中的數據,這樣就可以實現橫豎屏界面切換數據的保存與讀取,當然前提是只能保存Bundle類型的數據,也就是說大量的對象數據的話就要想其它辦法來恢復。
AndroidManifest.xml 中設置屬性禁止重新創建Activity,並且添加屏幕切換監聽。
Java代碼看一下效果圖紅框內的Log信息,outTime 為很橫豎切換屏幕之前保存的當前時間,SaveTime為橫豎切換屏幕之後讀取到之前保存的時間。通過這種方法可以正常的保存與讀取數據。

Android游戲開發教程之十一:太鼓達人游戲
同學們在玩游戲的時候應該都會發現游戲中會有兩種形式來播放音樂 ,一般設置選項中會明確標明 設置游戲音樂 與設置游戲音效。 客觀的分析一下這兩種形式的
Android游戲開發14:SurfaceView中使用Tween Animation漸變動畫
在Android游戲開發4中講解了使用一張13幀的png圖片,采用設
Android游戲開發教程之十四:觸摸軌跡曲線
在上一章的學習中我們已經知道如何處理游戲中的觸摸事件,這一章將向同學們介紹繪制游戲觸摸軌跡的曲線圖,在onTouchEvent方法中我們可以拿到手指
Android游戲引擎libgdx使用教程8:相機和觀察點
上一節中講了libgdx引擎框架總觀,本節講講相機和觀察點。 &nb