如何使用WebView显示图像

时间:2011-12-21 23:03:38

标签: javascript android webview

我想创建一个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>

3 个答案:

答案 0 :(得分:0)

我不禁认为使用CSS比使用JavaScript更好地调整图像大小。

我使用了很棒的背景大小做了一个例子:contains;自动缩放背景以使其适合div的属性,我认为这是您尝试使用JavaScript实现的。

http://jsfiddle.net/4DNsL/

答案 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相应地调整高度。它对我来说很完美。