将Android资源加载到WebView中

Amp*_*y91 45 android android-webview

我有一个显示漫画书的Android应用程序.为了利用内置的缩放控件,我正在加载图片,WebView如下所示:

webView.loadUrl("file:///android_asset/page1.jpg");
Run Code Online (Sandbox Code Playgroud)

然而,这工作正常,因为图像在资源文件夹中,它们没有被压缩,这使得我的.apk非常大.我想知道如何引用资源文件(从res/drawable文件夹)与我上面的资产一样的文件路径.有谁知道那条路会是什么样的?我尝试过"file:///res/drawable/pagetitle.jpg"没有成功的事情.谢谢您的帮助.


更新:

我发现那"file:///android_res/drawable/page1.jpg"是我正在寻找的道路.

run*_*r49 20

来自这个网站

使用资源ID,格式为:

"android.resource://[package]/[res id]"

Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/" + R.raw.myvideo);
Run Code Online (Sandbox Code Playgroud)

或者,使用资源子目录(类型)和资源名称(没有扩展名的文件名),格式为:

"android.resource://[package]/[res type]/[res name]"

Uri path = Uri.parse("android.resource://com.androidbook.samplevideo/raw/myvideo");
Run Code Online (Sandbox Code Playgroud)

  • 使用`file:/// android_res/raw/myvideo.mp4`进行webview. (13认同)
  • 使用`android.resource://com.androidbook.samplevideo/"+ R.raw.myvideo`和`webView.loadUrl`似乎不起作用. (2认同)
  • 这是公认的答案,但我无法看到它如何回答这个问题。问题问“如何使用文件路径引用资源文件......”,但这个答案给出了非“文件”“Uri”。该问题询问有关加载资源的信息,并显示了“webView.loadUrl(String)”的使用,但是这个答案没有告诉如何加载资源,并且“Uri”不能直接传递给“loadUrl( )`。 (2认同)

小智 6

我也不得不用loadDataWithBaseURL,而不是只是简单的loadData得到file:///android_res/drawable/page1.jpg工作.