我需要使用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
答案 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中使用同样的东西,那将会很有用!?