android–WebView摆脱双击缩放.

android–WebView摆脱双击缩放.,第1张

概述我读了很多关于缩放WebViews主题的门票,并没有找到我的案例的答案.这是我的设置:我通常使用这些设置的自定义webview:getSettings().setBuiltInZoomControls(false);getSettings().setSupportZoom(false);getSettings().setUseWideViewPort(true);getSettings().setLoadWithOv

我读了很多关于缩放WebVIEws主题的门票,并没有找到我的案例的答案.

这是我的设置:

我通常使用这些设置的自定义webvIEw:

getSettings().setBuiltInZoomControls(false);getSettings().setSupportZoom(false);getSettings().setUseWIDeVIEwPort(true);getSettings().setLoaDWithOverviewmode(true);

让我在这里注意,我依赖于Overviewmode以及WIDeVIEwPort来扩展我的WebVIEw.

我还覆盖我的OntouchEvent,并将所有合适的事件委托给Gesture检测器:

  @OverrIDe  public boolean ontouchEvent(MotionEvent event) {    if (gestureDetector.ontouchEvent(event)) return true;    return super.ontouchEvent(event);  }

以下是其侦听器实现,它拦截所有doubleTap事件:

  @OverrIDe  public boolean onDoubleTapEvent(MotionEvent e) {    // Do nothing!     return true;  }  @OverrIDe  public boolean onDoubleTap(MotionEvent e) {    // Do nothing!     return true;  }  @OverrIDe  public boolean onSingleTapConfirmed(MotionEvent e) {    // Do nothing!     return true;  }

另外我覆盖了与zoom有关的这两个WebVIEw方法:

  @OverrIDe  public boolean zoomIn() {    return true;  }  @OverrIDe  public boolean zoomOut() {    return true;  }

除了所有这些选项之外,某个抽头频率将导致我的webvIEw放大/缩小.
我没有找到一个禁用这种缩放的选项,此Zoom的MotionEvent似乎不适用于GestureDetector,并且覆盖zoomIn()zoomOut()方法也没有效果.

任何人都可以帮助我避免这种双击缩放WebVIEw的行为吗?

解决方法:

有两种方法可以实现您的目标:

方法1

像这样实现GestureDetector.OnDoubleTapListener:

@OverrIDepublic boolean onSingleTapConfirmed(MotionEvent e) {  return false; //nothing}@OverrIDepublic boolean onDoubleTap(MotionEvent e) {  //Indicates that this implementation has handled the double tap.  return true;}@OverrIDepublic boolean onDoubleTapEvent(MotionEvent e) {  //Indicates that this implementation has handled the double tap.  return true;}

并将其附加到您的GestureDetector,如下所示:

gestureDetector.setonDoubleTapListener(this);

方法2

您还可以使用WebSettings.setUseWIDeVIEwPort(false);并手动计算视图的大小.

这些方法可以帮助您实现显示所有内容的非可缩放Web视图.

public int getwindowWIDth(Activity activity) {  display display = ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultdisplay();  Point size = new Point();  display.getSize(size);  int wIDth = size.x;  return wIDth;}public int getinitialScale(Activity activity, int websiteWIDth) {  return (getwindowWIDth(activity) / websiteWIDth) * 100;}
总结

以上是内存溢出为你收集整理的android – WebView摆脱双击缩放.全部内容,希望文章能够帮你解决android – WebView摆脱双击缩放.所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1099860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存