2011-12-21 102 views
0

我想創建一個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> 

回答

0

我不禁想到你會更好使用CSS不是JavaScript調整圖片的大小。

我做了一個使用great background-size的示例:contains;屬性,自動縮放背景以適應div,我認爲這是你試圖用JavaScript實現的。

http://jsfiddle.net/4DNsL/

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"); 
0

爲什麼你想手動調整圖片的大小?只需設置圖像的寬度並讓webview相應地調整高度即可。它對我來說非常合適。