Android:使用Webview从Assets加载大图

4
我需要使用Webview从资源中加载一张大图片(大约3500 x 3500像素)。
我在Stackoverflow上做了很多研究,但是没有一个答案对我有用。我想这可能是Android 4.0+使用资源时的问题。
我的当前代码如下:
WebView webView = (WebView)findViewById(R.id.myWebView);
webView.loadUrl("file:///android_asset/test.html");

test.html看起来像:

<html>

  <table>

    <tr>

      <td>

        <img src="testimage.png" width="3500px" alt="TestAlt">

      </td>

    </tr>

  </table>

</html>

testimage.png和test.html都在assets中。在我的物理Android设备上测试时,我得到了以下结果:

网页无法显示 file:///android_asset/test.html 的网页可能暂时无法访问,或已永久移动到新的网络地址。

如所请求的日志:

I/webclipboard: clipservice:       android.sec.clipboard.ClipboardExManager@43ac41b0
V/webkit: BrowserFrame constructor:  this=Handler (android.webkit.BrowserFrame) {43ac3dc8}
D/WebView: loadUrlImpl: called
D/webcore: CORE loadUrl: called
D/webkit: Firewall not null
D/webkit: euler: isUrlBlocked = false
D/chromium: Unknown chromium error: -6
I/GATE: <GATE-M>DEV_ACTION_ERROR</GATE-M>
V/webkit: reportError errorCode(-1) desc(There was a network error)
I/GATE: <GATE-M>DEV_ACTION_COMPLETED</GATE-M>
I/Adreno200-EGLSUB: <ConfigWindowMatch:2136>: Format RGBA_8888.
D/WebView: onSizeChanged - w:480 h:0
D/WebView: onSizeChanged - w:480 h:446

你能在这里发布logcat吗? - KOTIOS
@Stacks28,我已按要求更新了我的问题。 - user1234
嘿,你确定路径正确吗?再检查一下拼写? - KOTIOS
@Stacks28 很多很多次……我进行了一些研究,只是为了确保我正确地访问了Android资源。 - user1234
2个回答

3
我在这里找到了答案:

https://dev59.com/eVrUa4cB1Zd3GeqPi1rH#7480245

。该链接提供了相关的IT技术信息。
webview.getSettings().setBuiltInZoomControls(true);
webview.loadDataWithBaseURL("file:///android_asset/", "<img src='file:///android_res/drawable/example.png' />", "text/html", "utf-8", null);

这很有效!动态生成HTML并包含本地图像非常好。 - Someone Somewhere

0
另一种方法: 如果您能够使用KitKat API级别19,并且您控制了Webview,以便无需担心安全问题...

Then:
webSettings.setDomStorageEnabled(true);

webSettings.setAllowFileAccessFromFileURLs(true); webSettings.setAllowUniversalAccessFromFileURLs(true);

通过这些设置,我能够加载信息(由浏览器 - Javascript 发起), 从 android_asset 文件夹和 SD 卡获取文件信息。 同时将信息保存到 SDCard。

如果有人知道如何在 V17 中使这个相同的东西工作,那就太好了!?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接