Je veux créer une WebView pour afficher une image.

Mais au deuxième / troisième démarrage de l'application, WebView est vide sur les appareils réels.

Lorsque je commente //wv.getSettings().setJavaScriptEnabled(true);, tout va bien et lorsque je suis en .http, je supprime onload="resize(this);" une application démarre également avec l'image à chaque fois.

Comment corriger cela. Comment utiliser JavaScript et ne pas avoir de WebView vide?

Peut-être que je dois enregistrer le cache après la première initialisation?

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;
    }
}
}

mon .html image de mât en plein écran:

<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
Sviatoslav 22 déc. 2011 à 03:03

3 réponses

Meilleure réponse

Je ne peux m'empêcher de penser que vous feriez mieux d'utiliser CSS que JavaScript pour redimensionner votre image.

J'ai fait un exemple en utilisant la grande taille d'arrière-plan: contain; propriété qui redimensionne automatiquement l'arrière-plan afin qu'il s'intègre dans le div, je pense que c'est ce que vous essayez d'obtenir avec votre JavaScript.

http://jsfiddle.net/4DNsL/

0
Ben Clayton 22 déc. 2011 à 09:36

Pourquoi essayez-vous de redimensionner manuellement l'image? Réglez simplement la largeur de l'image et laissez la vue Web ajuster la hauteur en conséquence. Cela fonctionne parfaitement pour moi.

0
Hades 22 déc. 2011 à 10:40
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
selvaiyyamperumal 22 déc. 2011 à 10:37
8597554