2010-03-24 9 views
29

J'ai un WebView et 2 URL pour l'ouvrir. Ce que je veux faire est, quand je fixe un niveau de zoom pour la 1ère url, puis je vais à la 2ème URL, il devrait également avoir le même niveau de zoom. En ce moment, le niveau de zoom est réinitialisé pour les deux.Définir le zoom pour Webview

Merci, Farha

Répondre

34

utilisent la webSettings classe

webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR); 

Notez que même si webSettings est disponible depuis l'API de niveau 1, WebSettings.ZoomDensity est disponible depuis l'API de niveau 7. fonctionne bien pour toutes les résolutions de l'appareil.

En outre, pour activer le zoom sur le webView, ajoutez le code suivant:

webView.getSettings().setBuiltInZoomControls(true); 
+4

Il semble que ceci est maintenant dépréciée. –

+1

c'est une propriété dépréciée .. voir ma réponse mise à jour pour venir sur il –

36

ce sera applicable dans ce scénario, je crois

mWebView.setInitialScale(ZOOM_LEVEL); 

où ZOOM_LEVEL peut être par exemple 25 pour 25% 150 pour 150%

+0

La bonne réponse pour webview.getSettings(). SetDefaultZoom (WebSettings.ZoomDensity.FAR); est obsolète –

13

Avant de quitter la première page, utilisez

int scale = 100 * webView.getScale(); 

Puis, après chargement de la deuxième page, utilisez

webView.setInitialScale(scale); 
+1

getScale(); est maintenant obsolète. – definera

3

@John a la bonne idée, mais une commande suffit, puisque vous pouvez obtenir et définir avant que la page affiche:

private class MyWebViewClient extends WebViewClient { 
    public void onPageFinished(WebView view, String url) { 
     view.setInitialScale((int)(100*view.getScale())); 
    } 
} 

alors situé juste à ce que votre client de WebView:

webview.setWebViewClient(new MyWebViewClient()); 
1

essayer cette thi ng

int default_zoom_level=100; 
Point Scroll=new Point(0,0); 
webview1.setInitialScale(default_zoom_level); 
    webview1.loadData("url"); 

Après avoir fait zoomIn/ZoomOut ou Scrolling.Since échelle peut être amener à changer de calculer si le niveau de l'échelle et le défilement le long de l'axe X et Y.

int current_scale_level=(int)webview1.getScale()*100; 
Scroll.x=webview1.getScrollX(); 
Scroll.y=webview1.getScrollY(); 

then before loading of next webview do this 

webview2.setInitialScale(current_scale_level); 
    webview2.loadData("url"); 
webview2.scrollTo(Scroll.x,Scroll.y); 
+0

Pas exactement ce que je voulais, mais m'a donné une idée de la façon de résoudre mon problème. Merci. –

16

setDefaultZoom est déprécié.

webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR); 

Ainsi, au lieu de cela, vous pouvez utiliser comme ci-dessous,

webview.setInitialScale(1); 
webview.getSettings().setLoadWithOverviewMode(true); 
webview.getSettings().setUseWideViewPort(true); 

Cela vous aidera à supprimer

setDefaultZoom(WebSettings.ZoomDensity.FAR). 
+2

cela devrait être la réponse acceptée à jour –

2

Vous pouvez régler le zoom à 0.1f

mWebView. zoomBy (0.1f);

+0

c'est la meilleure réponse sur Lollipop – superuser

+0

merci, espérons que aide –

0

J'ai trouvé ce blog utile:

Il vous aidera à régler le niveau de zoom initial et sur le contenu Seek-changement de WebView redimensionne

// Régler la progression initiale de la barre de recherche mSeekBar.setProgress (mWebView .getSettings(). getTextZoom()/25);

// Set a change listener for seek bar 
    mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int i, boolean b) { 
      /* 
       public abstract void setTextZoom (int textZoom) 
        Sets the text zoom of the page in percent. The default is 100. 

       Parameters 
        textZoom : the text zoom in percent 
      */ 

      // Zoom the web page text 
      // We will allow text zooming 25% to 300% 
      mWebView.getSettings().setTextZoom(i*25); 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 

     } 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 

     } 
    }); 

http://android--code.blogspot.in/2016/01/android-how-to-change-webview-text-size.html

Questions connexes