【问题标题】:Set zoom for Webview为 Webview 设置缩放
【发布时间】:2010-03-24 04:47:21
【问题描述】:

我有一个 WebView 和 2 个 URL 来打开它。我想要做的是,当我为第一个 url 设置缩放级别,然后我转到第二个 url 时,它也应该具有相同的缩放级别。现在,两者的缩放级别都会重置。

谢谢, 法哈

【问题讨论】:

    标签: android


    【解决方案1】:

    我相信这将适用于这种情况

    mWebView.setInitialScale(ZOOM_LEVEL);
    

    ZOOM_LEVEL 例如可以在哪里 25 为 25% 150 为 150%

    【讨论】:

    • webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR)的正确答案;已弃用
    【解决方案2】:

    使用webSettings

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

    请注意,尽管webSettings 从 API 级别 1 开始可用,WebSettings.ZoomDensity 从 API 级别 7 开始可用。适用于所有设备分辨率。

    另外,为了在 webView 上启用缩放,添加以下代码:

    webView.getSettings().setBuiltInZoomControls(true);
    

    【讨论】:

    • 似乎现在已弃用。
    • 它是不推荐使用的属性.. 请参阅我的更新答案以结束它
    【解决方案3】:

    setDefaultZoom 已弃用。

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

    所以你可以像下面这样使用,

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

    这可以帮助您删除

    setDefaultZoom(WebSettings.ZoomDensity.FAR).
    

    【讨论】:

      【解决方案4】:

      在离开第一页之前,使用

      int scale = 100 * webView.getScale();
      

      然后在加载第二页后,使用

      webView.setInitialScale( scale );
      

      【讨论】:

      • getScale();现已弃用。
      • 由于getScale()已被弃用,我使用getScaleY()并达到同样的效果
      【解决方案5】:

      @John 给出了正确的想法,但是一个命令就足够了,因为您可以在页面显示之前获取和设置:

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

      然后将其设置为您的 WebView 的客户端:

      webview.setWebViewClient(new MyWebViewClient());
      

      【讨论】:

      • 我正在使用 Marshmallow 平板电脑,但我一生都无法将页面缩放到 webview 的大小......直到我阅读了你的帖子。我使用了您的代码,除了一项更改,因为 .getScale() 已弃用:view.setInitialScale((int)(100*view.getScaleY()));
      【解决方案6】:

      您可以将缩放设置为 0.1f

      mWebView.zoomBy(0.1f);

      【讨论】:

      • 这是 Lollipop 上的最佳答案
      【解决方案7】:

      试试这个东西

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

      在执行 zoomIn/ZoomOut 或 Scrolling 之后。由于可能会更改比例,因此计算比例级别并沿 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);
      

      【讨论】:

      • 不完全是我想要的,但让我知道如何解决我的问题。谢谢。
      【解决方案8】:

      我发现这个博客很有帮助:

      它将帮助您设置初始缩放级别和搜索更改内容的 webview 调整大小

      // 设置seek bar的初始进度 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

      【讨论】:

        【解决方案9】:

        WebView 的缩放可以通过zoomIn()zoomOut() 方法以编程方式控制

        【讨论】:

          猜你喜欢
          • 2013-11-04
          • 2011-04-18
          • 2016-11-29
          • 2011-09-11
          • 2014-01-05
          • 1970-01-01
          • 2011-02-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多