Android:使用Webview从资源加载大图像

时间:2013-07-29 16:02:41

标签: android image web webview

我需要使用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都在资产中。在我的物理Android设备上测试后,我得到:

  

网页不可用   file:///android_asset/test.html上的网页可能暂时关闭,或者可能已永久移至新的网址。

按要求提供Logcat:

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

2 个答案:

答案 0 :(得分:3)

从这里找到答案:

https://stackoverflow.com/a/7480245/2060140

webview.getSettings().setBuiltInZoomControls(true);
webview.loadDataWithBaseURL("file:///android_asset/", "<img src='file:///android_res/drawable/example.png' />", "text/html", "utf-8", null);

答案 1 :(得分:0)

另一种方法: 如果您能够使用KitKat API级别19,并且您可以控制Webview,那么就不必担心安全问题......

然后:
webSettings.setDomStorageEnabled(真);

webSettings.setAllowFileAccessFromFileURLs(真); webSettings.setAllowUniversalAccessFromFileURLs(真);

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

如果有人知道如何在V17中使用同样的东西,那将会很有用!?