我想创建一个WebView来显示图像。
但是在应用程序的第二个/第三个启动时WebView
在实际设备上为空。
当我发表评论//wv.getSettings().setJavaScriptEnabled(true);
时,一切都很好。当我在.http中删除onload="resize(this);"
时,应用程序每次都会以图片开头。
如何纠正此问题。如何使用JavaScript
并且不要空WebView
?
也许我需要在首次初始化后保存缓存?
public class TestwebViewimageActivity extends Activity {
private WebView wv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wv = (WebView) findViewById(R.id.webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebViewClient(new HelloWebViewClient());
wv.setBackgroundColor(0x00000000);
wv.getSettings().setBuiltInZoomControls(false);
wv.setVerticalScrollBarEnabled(false);
wv.setHorizontalScrollBarEnabled(false);
wv.loadUrl("file:///android_asset/4.html");
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
}
我的.html 桅杆在完整窗口中显示图片:
<html><head>
</head>
<body>
<img src="myimage.png" onload="resize(this);" />
<script type="text/javascript">
function resize(image) {
image.style['height'] = document.body.clientHeight + 'px';
image.style['width'] = document.body.clientWidth + 'px';
image.style['margin'] = 0;
document.body.style['margin'] = 0;
}
</script>
</body>
</html>
答案 0 :(得分:0)
我不禁认为使用CSS比使用JavaScript更好地调整图像大小。
我使用了很棒的背景大小做了一个例子:contains;自动缩放背景以使其适合div的属性,我认为这是您尝试使用JavaScript实现的。
答案 1 :(得分:0)
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
String summary = "<html><body><div style=\"background:red; \"</div>
<img src=\"res/drawable/banner300.jpg\"/></body></html>";
mWebView.loadData(summary, "text/html", "utf-8");
答案 2 :(得分:0)
为什么要尝试手动调整图像大小?只需设置图像的宽度,然后让webview相应地调整高度。它对我来说很完美。