【发布时间】:2012-01-17 14:37:54
【问题描述】:
我完全糊涂了。我的项目中有一个“资产”文件夹,但 AssetManager 不引用该文件夹。所以我有三个问题:
首先,AssetManager 引用的文件夹在哪里?
其次,如何将文件放入该文件夹?
第三,如何访问我放入项目“资产”文件夹中的文件? (推论问题:如果 AssetManager 不使用这个文件夹,它的用途是什么?)
文档完全没有澄清这些问题。非常沮丧。
【问题讨论】:
标签: android
我完全糊涂了。我的项目中有一个“资产”文件夹,但 AssetManager 不引用该文件夹。所以我有三个问题:
首先,AssetManager 引用的文件夹在哪里?
其次,如何将文件放入该文件夹?
第三,如何访问我放入项目“资产”文件夹中的文件? (推论问题:如果 AssetManager 不使用这个文件夹,它的用途是什么?)
文档完全没有澄清这些问题。非常沮丧。
【问题讨论】:
标签: android
我的项目中有一个“assets”文件夹,但是 AssetManager 没有引用这个文件夹。
是的,确实如此。
首先,AssetManager 引用的文件夹在哪里?
assets/ 在您的项目中。
其次,如何将文件放入该文件夹?
这取决于您的操作系统。大多数操作系统都有“文件管理器”,它支持某种拖放机制来复制文件。但是,如果您使用的是 Eclipse,则可以拖放到 Eclipse 中,或者确保按 F5 来更新 Eclipse,以更新您在 Eclipse 之外对 Eclipse 项目所做的更改。
第三,如何访问我放入项目“资产”文件夹中的文件?
使用AssetManager,或者有时通过file://android_asset/ Uri 值(注意它是android_asset,单数,而项目目录是assets/,复数——很烦人)。
所以如果我理解正确,我不应该这样做:AssetManager mgr = getAssets();,这给了我一个完全不同的文件夹内容。
没有,刚试过。我仍然得到错误文件夹的内容,即不是我项目的“资产”文件夹。
那么你的项目就严重混乱了。很多很多开发人员都可以正常工作。
例如:
【讨论】:
您可以将项目中所需的资源拖到 /assets 文件夹中,并通过以下方式通过代码访问它们:
context.getAssets().open(YOUR_FILE_NAME);
context.getAssets() 只会为您的应用程序包返回一个 AssetManager 实例,您可以从中访问文件。
希望对你有帮助!
【讨论】:
如果您有项目文件 assets/foo.bar,那么在运行时getAssets().open("foo.bar") 将打开该文件。
【讨论】:
使用 Android Studio,我遇到了同样的问题。
我尝试将我的“assets”文件夹放在“res”中,就像我们使用 Eclipse 时一样。
但现在它已移至“src/main/assets”。这是您必须放置文件的地方。
在此处查看已接受的答案: assets-folder-in-android-studio
【讨论】: