2013-01-11 91 views
0

Android將爲res/drawable目錄中的每個圖片分配id。他們在哪? 我想動態選擇一個圖片形式的池並顯示它。我怎樣才能做到這一點?資源的ID在哪裏?

回答

0

它們存儲在res/drawable文件夾中。

如果文件名demo.png,那麼他們可以通過R.drawable.demo

如果您要訪問一個隨機的繪製,所有的資源標識符存儲在一個整數的ArrayList和編程生成訪問一個使用Random()的隨機函數,並從數組列表中獲取該特定項目。然後你每次都會有一個隨機抽獎。

0

自動生成的ID位於gen文件中,但不建議使用它們。直接通過一些預定義的R.drawable.filename數組來使用文件名並隨機選擇它們會更好。

0

有些ID存儲在R.java文件中,但無法對其進行編輯,因爲每次更改都會被寫入。

您還可以通過名稱訪問資源,如果知道資源的名稱或者可以根據某種預定義的命名方案派生它們,這可能是解決問題的可行方法。 (例如圖像序列image1image2等在命名。

你必須使用Resources類的getIdentifier()方法映射的名稱標識符。

String name = "resource" + rng.nextInt(count); 
int resource = getResources().getIdentifier(name, "drawable", "com.package"); 

此方法的文檔說:

注意:使用此功能時 氣餒這是更有效的 通過標識檢索資源比名稱。

這是事實,但如果您在代碼中執行的操作不是性能敏感的,則不必成爲問題。

或者,如果您不介意以XML格式列出資源,則可以創建a typed array,然後您可以從中隨意選擇。

+0

如果我列出佈局XML中的所有圖片,所有圖片都會顯示出來。 – Gabriel

+0

好吧,是的。這纔是重點。有問題嗎? –

+0

我想要做的是通過GridView選擇一張圖片,然後在活動2中顯示所選圖片。我的想法是使用攜帶所選圖片索引的意圖,然後使用索引來確定應該在哪個圖片中顯示活動2.這種方式能工作嗎?如果我列出佈局XML中的所有圖片,它們都會在程序運行時顯示出來。但我只想看看我在畫廊中選擇的那個。 – Gabriel

相關問題