2011-04-21 64 views
4

我有約650個小圖標,我需要在我的android項目中引用。它們的總尺寸約爲70 k/b,所以尺寸不是問題。大量的圖片參考,不想硬編碼支持每個圖像

我正在構建的應用程序只列出了這些圖標的全部650個以及每個圖標的標籤。這些標籤存儲在一個字符串數組中,並且每個圖標都有標籤索引以便於參考(因此標籤數組中的索引0與我的android項目的可繪製文件夾中的文件p0.png相協調) 。

這工作正常,但問題是,我可以引用這些圖像而不使用R.class。 R類設置了變量和所有內容,但是當我只需循環遍歷它們並使用文件名作爲索引時,通過R類引用圖像就很麻煩。

有沒有辦法訪問這些圖像,而不使用R.class?我也想避免使用SD卡,因爲這些圖像在SD卡中看起來會很煩人。

對此提出建議?

+0

作爲提示,你可以去SD卡的路線;只需在目錄中放置一個名爲'.NOMEDIA'的文件,並且媒體掃描器不會對該文件夾編制索引。 – kcoppock 2011-04-21 21:41:22

回答

5

將圖標放入/assets目錄並使用AssetManager來訪問它們。 assets目錄中的資源不會在R文件中編入索引。

4

資產方法肯定會起作用,但帶來的缺點是您無法將圖像分爲單獨的文件夾。使用提供的函數將使您能夠遍歷通過索引傳遞的可繪製列表作爲字符串值。

public int getId(String name) { 
     Class<R.drawable> class = R.drawable.class; 
     Field field; 
     int i = 0; 
     try { 
      field = class.getField(name); 
      i = field.getInt(field); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return i; 
    } 

編輯

道歉回答問題接受,接受我張貼。

+0

+1額外的信息總是好的,接受與否。 :) – kcoppock 2011-04-21 21:40:30