2010-03-24 158 views
29

我有一個WebView和2個網址來打開它。我想要做的是,當我爲第一個網址設置縮放級別,然後我轉到第二個網址時,它也應該具有相同的縮放級別。現在,這兩個縮放級別都會重置。設置爲Webview的縮放

感謝, 法哈

回答

34

使用webSettings

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

注意的是,雖然webSettings是因爲API等級1,可WebSettings.ZoomDensity是因爲API級別7.非常適用於所有設備分辨率可用。

此外,爲了對web視圖啓用縮放,添加以下代碼:

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

看來這是現在已經過時。 – 2014-09-15 16:08:00

+1

它是不贊成使用的財產..看到我更新的答案來結束它 – 2015-05-28 11:10:11

36

這將是適用於這種情況下,我相信

mWebView.setInitialScale(ZOOM_LEVEL); 

其中ZOOM_LEVEL例如可以 25 for 25% 150 for 150%

+0

正確的答案爲webview.getSettings()。setDefaultZoom(WebSettings.ZoomDensity.FAR);已棄用 – 2017-03-09 07:21:07

13

在離開第一頁之前,請使用

int scale = 100 * webView.getScale(); 

然後加載第二頁後,使用

webView.setInitialScale(scale); 
+1

getScale();現在已被棄用。 – definera 2015-04-23 14:07:53

3

@約翰給了正確的想法,但一個命令就足夠了,因爲你可以得到和頁面之前設置顯示:

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

然後就設置此爲您的WebView客戶端:

webview.setWebViewClient(new MyWebViewClient()); 
1

試試這個THI納克

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

做zoomIn /縮小(ZoomOut)或Scrolling.Since規模後,可以得到改變,因此計算等級與沿X軸和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

不完全是我想要的,但給了我想法如何解決我的問題。謝謝。 – 2017-03-06 10:17:28

16

setDefaultZoom is deprecated。

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

因此,不是,你可以使用如下,

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

這能幫你去除

setDefaultZoom(WebSettings.ZoomDensity.FAR). 
+2

這應該是最新的接受答案 – 2016-08-18 20:33:53

2

您可以將變焦設置爲0.1F

mWebView。 zoomBy(0。1F);

+0

這是Lollipop的最佳答案 – superuser 2016-10-25 08:21:06

+0

謝謝,希望對您有所幫助 – 2016-11-06 09:07:52

0

我發現這個博客有幫助:

它將幫助您設置的初始縮放級別和尋求變化的WebView內容調整大小

//設置的初步進展搜索欄 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