129 votes

Android Webview - La page Web doit correspondre à l'écran de l'appareil

J'ai essayé ce qui suit pour adapter la page Web en fonction de la taille de l'écran du périphérique.

 mWebview.setInitialScale(30);
 

puis définissez la fenêtre de métadonnées

 <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=0;"/>
<meta name="viewport" content="width=device-width, target-densityDpi=medium-dpi"/>
 

Mais rien ne fonctionne, la page Web n'est pas fixée à la taille de l'écran de l'appareil.

Quelqu'un peut-il me dire comment l'obtenir?

325voto

Tushar Vengurlekar Points 3169

Vous pouvez utiliser ceci

     WebView browser = (WebView) findViewById(R.id.webview);
    browser.getSettings().setLoadWithOverviewMode(true);
    browser.getSettings().setUseWideViewPort(true);
 

cela corrige la taille en fonction de la taille de l'écran.

92voto

danh32 Points 3479

Vous devez calculer l'échelle que vous devez utiliser manuellement, au lieu de la définir sur 30.

 private int getScale(){
    Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    int width = display.getWidth(); 
    Double val = new Double(width)/new Double(PIC_WIDTH);
    val = val * 100d;
    return val.intValue();
}
 

Puis utiliser

 WebView web = new WebView(this);
web.setPadding(0, 0, 0, 0);
web.setInitialScale(getScale());
 

40voto

Josmar Peixe Points 201

Copains,

J'ai trouvé beaucoup d'importations et d'excellentes informations de votre part. Mais le seul moyen qui fonctionne pour moi était la suivante:

 webView = (WebView) findViewById(R.id.noticiasWebView);
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.loadUrl("http://www.resource.com.br/");
 

Je travaille sur Android 2.1 en raison du type d'appareils de la société. Mais j'ai résolu mon problème en utilisant la partie des informations de chacun.

Merci!

25voto

josebetomex Points 186

Essayez avec ces astuces HTML5

http://www.html5rocks.com/en/mobile/mobifying.html

Et avec cela si votre version Android est 2.1 ou supérieure

   WebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
 

14voto

Nezneika Points 111

Celles-ci fonctionnent pour moi et adaptent WebView à la largeur de l'écran:

 // get from xml, with all size set "fill_parent"  
webView = (WebView) findViewById(R.id.webview_in_layout);  
// fit the width of screen
webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 
// remove a weird white line on the right size
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);  
 

Merci aux conseils ci-dessus et à la ligne blanche dans la vue Web eclipse

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X