我想知道从android的assets文件夹中加载一个file:///
文件是什么意思。
它是指向根目录的绝对路径名吗?
顺便说一下,我在phonegap的教程中看到了这一点。
发布于 2012-08-15 07:08:12
file:///
是一个URI (统一资源标识符),它只是将我们熟知的标准URI -- http://
--区分开来。
它确实意味着在任何环境中都会有一个指向根目录的绝对路径名,但在Android环境中,告诉Android运行时这样做是一种惯例:“在这里,目录www
有一个名为index.html
的文件,位于项目的根中的assets
文件夹中”。
这就是在运行时加载资产的方式,例如,通过指定file:///
URI,WebView
小部件将确切地知道在何处加载嵌入的资源文件。
考虑下面的代码示例:
WebView webViewer = (WebView) findViewById(R.id.webViewer);
webView.loadUrl("file:///android_asset/www/index.html");
这里很容易犯的一个错误是,有些人会将其推断为file:///android_assets
,注意URI中资产的复数,并想知道为什么嵌入的资源不工作!
发布于 2014-09-03 05:08:18
如果有人使用AndroidStudio,请确保将assets文件夹放在
目录。
发布于 2016-04-13 03:21:04
URI "file:///android_asset/"
指向YourProject/app/src/main/assets/
。
注意:android_asset/
使用单数(asset),而src/main/assets
使用复数(assets)。
假设您有一个想要在WebView中显示的文件YourProject/app/src/main/assets/web_thing.html
。你可以这样引用它:
WebView webViewer = (WebView) findViewById(R.id.webViewer);
webView.loadUrl("file:///android_asset/web_thing.html");
上面的代码片段可能位于您的Activity类中,也可能位于onCreate
方法中。
这是一个android项目的整体目录结构的guide,它帮助我找到了这个答案。
https://stackoverflow.com/questions/11961975
复制相似问题