2012-01-17 50 views
1

我完全困惑。我的項目中有一個「資產」文件夾,但AssetManager未引用此文件夾。所以我有三個問題:資產混淆

首先,AssetManager引用的文件夾在哪裏?

二,如何將文件放入該文件夾?

第三,如何訪問我放入項目「資產」文件夾的文件? (推論問題:如果AssetManager未使用此文件夾的目的是什麼?)

文檔完全無法澄清這些問題。非常令人沮喪。

回答

0

您可以將您想要的資源,在您的項目到/資產文件夾,並通過代碼訪問它們:

context.getAssets().open(YOUR_FILE_NAME); 

context.getAssets()只會返回一個AssetManager實例爲您的應用程序包,從這裏您可以訪問文件。

希望它有幫助!

+0

所以,如果我理解正確的話,我不應該這樣做:AssetManager經理= getAssets();,這是給我一個完全不同的文件夾中的內容。 – 2012-01-17 14:52:03

+0

不,只是試了一下。我仍然收到錯誤的文件夾內容,即不是我項目的「資產」文件夾。 – 2012-01-17 15:03:49

+0

這很奇怪,它應該像那樣工作。我已經使用了這種方法幾次,它從來沒有讓我失望。也許問題在別的地方? – jcxavier 2012-01-17 15:11:43

0

如果您有項目文件assets/foo.bar,那麼在運行時getAssets().open("foo.bar")將打開該文件。

+0

但我試圖列出項目的'資產'文件夾中的文件,並得到了完全不同的東西... AssetManager mgr = getAssets(); files = mgr.list(「」); – 2012-01-17 14:48:27

1

我的項目中有一個'assets'文件夾,但AssetManager未引用此文件夾。

是的,它的確如此。

首先,AssetManager引用的文件夾在哪裏?

assets/在您的項目中。

二,如何將文件放入該文件夾?

這取決於您的操作系統。大多數操作系統都有「文件管理器」,它們支持某種用於複製文件的拖放機制。但是,如果您正在使用Eclipse,請將其拖放到Eclipse中,或者確保按F5更新Eclipse,以瞭解您在Eclipse之外對Eclipse項目所做的更改。

第三,如何訪問我放入項目「資產」文件夾的文件?

使用AssetManager,或有時通過file://android_asset/Uri值(請注意,這是android_asset,奇異的,而項目目錄是assets/,複數 - 非常討厭)。

因此,如果我理解正確,我不應該這樣做:AssetManager mgr = getAssets();它給了我一個完全不同的文件夾內容。

不,剛試過。我仍然收到錯誤的文件夾內容,即不是我項目的「資產」文件夾。

然後你的項目被嚴重搞砸了。許多許多開發人員都能很好地工作。

例如:

0

使用Android Studio中,我有同樣的問題。

我試圖把我的「資產」文件夾放在「res」中,就像我們使用Eclipse時一樣。

但現在它已轉移到「src/main/assets」。這是你必須放置文件的地方。

看到有公認的答案: assets-folder-in-android-studio