2011-02-02 118 views
0

我最近開始在android中開發一款遊戲,之前從未使用過它,並且想知道是否有一種簡單的方法可以將一組圖像加載到應用程序中。由於我目前的實施涉及基本Android:載入多張圖片

創建一個int []數組,
存儲每個繪製的值到這個陣列,(現在這必須手工編碼,所以如果我再添加任何圖片它必須是添加編程)

然後遍歷數組中的每個項目並調用BitmapFactory以獲取資源。 (不幸的是,我沒有代碼,因爲它在家裏,我在工作,但這是傑斯)

所以2個問題,有沒有辦法讓繪圖而不必投入每個項目手動到int [] - 即查找可能是一個文件名前綴,然後只加載資源的前綴?

這導致我的第二個問題,因爲我在我的可繪製資源目錄中不僅僅是這些圖像,還有一種方法可以添加額外的組織(文件夾)來更好地管理文件。由於目前我在可繪製文件中有大量圖像,我將如何引用這些子文件夾/圖像。

回答

1

資源結構中不能有子文件夾。 Android依賴於文件夾佈局來確定在什麼情況下使用哪種資源(本地化,不同的屏幕分辨率等)。

我不確定爲什麼你要加載一大堆圖像,但有幾個(較慢)的方法可以讓你通過字符串名來查找資源。如果您對圖像使用了命名約定,則可以通過[Resources.getIdentifier()] [1]以這種方式查看它們。但是,在遊戲性能可能很重要的情況下,所以使用int ID直接使用更多手動方法可能會更好,因爲它效率更高。

[1]:http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String,java.lang.String中,java.lang.String中)

+0

看到上面的評論,我不能在這裏輸入這一切 – somin 2011-02-02 17:40:15

0

我上傳圖像的負載,因爲它們將被顯示給用戶爲不同的項目。它不是一個響應能力至關重要的系統,所以它在我想要的方面沒有問題。雖然......

公衆詮釋則getIdentifier(字符串名稱,字符串DEFTYPE,字符串defPackage) 自:API等級1

返回爲給定的資源名稱的資源標識符。完全限定的資源名稱形式爲「package:type/entry」。如果在這裏指定defType和defPackage,前兩個組件(包和類型)是可選的。

注意:不鼓勵使用此功能。通過標識符而不是按名稱檢索資源要高效得多。

他們建議使用資源ID,但如果我想添加一個文件以後,然後我不得不重新編譯應用程序,包括額外的文件,這是它的錯誤我,因爲PIC被關聯到一個項目,我有一個字符串數組。所以我可以將項目添加到數組中,但不會更改代碼。

當然有一個功能來解決這個問題?

+0

你應該編輯你的原始問題來添加詳細信息,而不是發佈答案。無論如何,我不明白你的擔憂。如果您正在使用圖像資源,則無論您如何訪問圖像,都需要重新編譯應用程序以添加新圖像。如果您不想重新編譯以更改圖像,則無法使用Android資源,並需要提供自己的解決方案。 – 2011-02-02 17:44:03