2011-07-20 32 views
7

我想遞歸加載我放在我的項目中的「資產」文件夾內的所有資產。當我做到以下幾點:資產 - 「圖像」,「聲音」和「webkit」?

AssetManager assetManager = getResources().getAssets(); 
String assets[] = assetManager.list(""); 

,並裝入資產數組什麼字符串檢查,我發現我已經把指定的文件夾內的資產,字符串「圖像」,「聲音」一起,和「WebKit的」。有人知道爲什麼嗎?

有關背景信息(還不知道它是否適用),我的資產是包含完整的html網頁的zip文件,我用它來加載到WebViews中。

回答

6

我也注意到了這一點。這裏是放置在這些目錄中的部分資產:

webkit/play.png 
webkit/nullPlugin.png 
webkit/missingImage.png 
webkit/android-weberror.png 
sounds/bootanim1.raw 
images/comobox-disabled.png 
images/comobox-noHighlight.png 

我的猜測是,系統依賴於這種資產存在於所有的apk文件。但是,Android並沒有將它們構建(這會增加所有.apk文件的大小),而是通過資產API來模擬它們。

另外,作爲副作用,您可以使用任何與內置名稱相同名稱的自定義資產覆蓋此資產。並不是說這可能太有用,但這是可能的。

+0

感謝您的猜測。 :)我仍然覺得奇怪的是,他們沒有記錄這一點,或者甚至會允許你重寫資產 - 系統範圍的資產應該是系統範圍的。 –

0

我有這個問題,我建議你檢查兩件事情:

  1. 該目錄名是用英文寫的。 \ n
  2. 您的資產根目錄中只有一個目錄(在此目錄中可插入幾個drectories)。
    例如:
    assets->app->imageassets->app->another dir。
    在這個例子中,應用程序目錄是asssete根目錄中唯一的目錄。
0

在我的情況下,我在項目(應用程序 - >資產)的「應用程序」目錄中創建assets文件夾,並且我加載到這個「assets」文件夾的文件沒有被AssetsManager讀取。然後,我右鍵單擊「應用程序」文件夾 - >新建 - >文件夾 - >資產文件夾(位置「主」),一切都解決了。問題出在創建「assets」文件夾的位置。