天天看點

Libgdx仿安卓R檔案通過Id通路資源

在libgdx開發過程中,對資源的引用是直接通過一個資源路徑的字元串來擷取的,這給我們開發過程中造成了很大的不便。例如我們修改了某個資源檔案的路徑後,編譯器并不會報錯,但是運作的時候卻提示找不到這個檔案,因為編譯器無法判斷這個資源路徑是否為有效路徑,這個時候我們需要手動去修改這個路徑字元串,如果是一個兩個倒還好,但如果是批量修改呢,又怎麼保證路徑不會輸錯。要解決這個問題,我們可以通過将資源路徑與變量對應起來,因為編譯器可以判斷一個變量是否存在。于是,我們很容易想到android中的r檔案,每個資源對應一個整型id,通過id去通路資源。那麼在libgdx中我們同樣可以采取類似的方式,手動生成一個r檔案,通過通路r檔案中的變量去通路資源。這也是很多libgdx開發者通用的做法。

通過周遊資源目錄(android工程下的assets檔案夾),擷取每個資源的路徑,然後将這些資源路徑儲存為java的一個string類型常量,那麼用的時候就可以直接使用r檔案中的這個常量就行了,如果資源發生變動,隻需要重新生成一下r檔案就行了,十分友善。

有效防止路徑拼寫錯誤

資源變動後,編譯器會給予錯誤提示

周遊檔案夾為耗時操作,若周遊r檔案則友善快速得多

如下圖的包和autor類

Libgdx仿安卓R檔案通過Id通路資源

記得将變量assetpath的值該為你的android工程下的assets檔案夾路徑(絕對路徑)。

點右鍵運作autor檔案并重新整理後,将會看到包下多了一個r檔案。這個檔案中就是自動生成的資源id檔案。

生成的檔案如下格式:

r檔案會自動為每個目錄建立一個内部類,保持層級關系同資源目錄中的一緻。

例如:

繼續閱讀