2010-03-24 21 views
29

Ho una WebView e 2 URL per aprirlo. Quello che voglio fare è, quando imposto un livello di zoom per il primo url, e poi vado al secondo url, dovrebbe anche avere lo stesso livello di zoom. In questo momento, il livello di zoom si ripristina per entrambi.Imposta zoom per Webview

Grazie, Farha

risposta

34

utilizzano la classe webSettings

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

Si noti che anche se webSettings è disponibile dal API di livello 1, WebSettings.ZoomDensity è disponibile dal livello API 7. funziona bene per tutte le risoluzioni del dispositivo.

Inoltre, al fine di consentire lo zoom sulla WebView, aggiungere il seguente codice:

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

Sembra che questo è ora sconsigliato. –

+1

è proprietà deprecata .. vedere la mia risposta aggiornata a over it –

36

questo sarà applicabile in questo scenario credo

mWebView.setInitialScale(ZOOM_LEVEL); 

dove ZOOM_LEVEL per esempio può essere 25 per il 25% 150 per il 150%

+0

La risposta corretta per webview.getSettings(). SetDefaultZoom (WebSettings.ZoomDensity.FAR); è deprecato –

13

Prima di uscire dalla prima pagina, utilizzare

int scale = 100 * webView.getScale(); 

Poi, dopo aver caricato la seconda pagina, utilizzare

webView.setInitialScale(scale); 
+1

getScale(); è ora deprecato. – definera

3

@ John ha dato l'idea giusta, ma un comando è sufficiente, dal momento che è possibile ottenere e impostare prima che la pagina mostra:

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

poi basta impostare questo come client del WebView:

webview.setWebViewClient(new MyWebViewClient()); 
1

provare questo Thi ng

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

Dopo aver fatto zoomIn/ZoomOut o Scrolling.Since Scale può essere arrivare a cambiare così calcolare il livello di scala e di scorrimento lungo X e Y Axis.

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

Non esattamente quello che volevo, ma mi ha dato un'idea di come risolvere il mio problema. Grazie. –

16

setDefaultZoom è obsoleto.

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

Così, invece di che è possibile utilizzare come qui di seguito,

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

Questo aiuterà a rimuovere

setDefaultZoom(WebSettings.ZoomDensity.FAR). 
+2

questa dovrebbe essere la risposta accettata aggiornata –

2

È possibile impostare lo zoom a 0.1f

mWebView. Zoomby (0.1f);

+0

questa è la migliore risposta su Lollipop – superuser

+0

grazie, spero che aiuti –

0

ho trovato questo blog utile:

Essa vi aiuterà a impostare il livello di zoom iniziale e cercare cambiamento contenuto di WebView ridimensiona

// Imposta il progresso iniziale di barra di ricerca 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

Problemi correlati