wv.setOnTouchListener(new OnTouchListener() {
private float OldX1, OldY1, OldX2, OldY2;
private float NewX1, NewY1, NewX2, NewY2;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_POINTER_2_DOWN:
if (event.getPointerCount() == 2) {
OldX1 = event.getX(0);
OldY1 = event.getY(0);
OldX2 = event.getX(1);
OldY2 = event.getY(1);
}
break;
case MotionEvent.ACTION_MOVE:
if (event.getPointerCount() == 2) {
if(OldX1 == -1 && OldX2 == -1)
break;
NewX1 = event.getX(0);
NewY1 = event.getY(0);
NewX2 = event.getX(1);
NewY2 = event.getY(1);
float disOld = (float) Math.sqrt((Math.pow(OldX2
- OldX1, 2) + Math.pow(OldY2 - OldY1, 2)));
float disNew = (float) Math.sqrt((Math.pow(NewX2
- NewX1, 2) + Math.pow(NewY2 - NewY1, 2)));
Log.e("onTouch", "disOld=" + disOld + "|disNew="
+ disNew);
if (disOld - disNew >= 25) {
// 缩小
// wv.zoomOut();
wv.loadUrl("javascript:mapScale=1;");
Log.e("onTouch", "zoomOut");
} else if (disNew - disOld >= 25) {
// 放大
// wv.zoomIn();
wv.loadUrl("javascript:mapScale=-1;");
Log.e("onTouch", "zoomIn");
}
OldX1 = NewX1;
OldX2 = NewX2;
OldY1 = NewY1;
OldY2 = NewY2;
}
break;
case MotionEvent.ACTION_UP:
if (event.getPointerCount() < 2) {
OldX1 = -1;
OldY1 = -1;
OldX2 = -1;
OldY2 = -1;
}
break;
}
return false;
}
});
代码很容易理解 判断触控的手指数 同时去比较前后2点间的距离 从而做到手势缩放 最后发送消息到webview
在js中这里是模拟了鼠标滚轮的缩放 所以只给了一个mapscale 具体的情况也可以在js中提供一个放大缩小视口的接口 直接调用等多种方式
仅起到抛砖引玉的作用
分享到:
相关推荐
然而,在某些情况下,我们可能希望优化用户体验,比如隐藏WebView中的缩放按钮,避免用户误操作或者因为网页设计不适合缩放而引起的问题。本教程将详细讲解如何通过反射机制来隐藏WebView的缩放按钮,并且我们将确保...
当我们处理包含大图片的网页时,如何在WebView中进行有效的图片缩放是一个常见且重要的问题。本篇文章将深入探讨“webview大图片缩放”的相关知识点,以确保用户在查看这些图片时能获得良好的体验。 首先,我们了解...
1. 添加手势识别器:Android提供了GestureDetector和ScaleGestureDetector来处理用户的滑动和缩放手势。首先,需要创建这两个识别器实例,并重写相关回调方法。 ```java GestureDetector gestureDetector = new ...
总结起来,实现Android JavaScript打开Webview图片并支持放大缩小的关键步骤包括:开启Webview的JavaScript支持,注入JavaScript接口,处理图片点击事件,以及在Android端实现图片的全屏展示和手势缩放。通过这些...
最后,为了让图片可以手势缩放,我们需要对ImageView进行一些配置: ```java imageView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { ...
WebView设置setBuiltInZoomControls(true)后,隐藏缩放按钮的控件在webView的源码里是通过: private ZoomButtonsController mZoomButtonsController; 这个私有控件控制的,而且也没有public方法可以获得此...
在Android开发中,有时我们需要在应用内部展示PDF文件,而Webview是一个常用的选择。Webview不仅可以加载HTML页面,还可以通过JavaScript接口与Android原生代码交互,实现更多功能。本教程将详细讲解如何在Android的...
接下来,我们需要为Webview添加手势监听。可以使用`GestureDetector`来捕捉滑动、点击等手势: ```java GestureDetector gestureDetector = new GestureDetector(context, new GestureDetector....
博客地址:Android WebView中图片浏览及缩放效果 首先说一下处理这个要求的思路,首先我们要获取到html中的所有图片的url,并保存到集合中,当点击图片时,跳转 一个Activity用ViewPager进行显示,这样就实现了滑动浏览...
基于pdf.js和jQuery,可手势捏合缩放,分段加载,支持canvas和svg两种渲染pdf模式,不支持本地绝对路径,支持相对路径和网络路径,支持ajax和fetch两者请求方式。在Android和IOS的webview上均可使用。...
今天所要分享的是在Android中实现对组件进行缩放(包括ImageView,TextView等组件)。实现该功能主要依靠ScaleGestureDetector类,该类主要是用于识别一些特定的手势,通过监听手势事件,从而进行相应的处理。下面就...
在android的实际开发中有时候我们需要将文字和图片一起显示,可以用TextView和ImageView的组合来实现,其实用网页显示更容易,本文介绍android显示含有图片和文字的本地网页html,hml的方法,并支持放大缩小。
3. 实现手势识别器的代理方法,判断滑动手势的方向,并在适当的时候调用WebView的goBack方法: ```swift @objc func handlePanGesture(_ gestureRecognizer: UIPanGestureRecognizer) { guard let webViewSuperview...
【WebView2Loader.dll详解】 WebView2 是微软推出的一款现代Web技术框架,用于在桌面应用程序中嵌入Web内容。它基于Chromium项目,提供了与最新Web标准兼容的浏览器内核,使得开发者可以在桌面应用中轻松集成网页...
看了下WebView的源码,修改此缩放比例值WebView内部是通过: private void setNewZoomScale(float scale, boolean updateTextWrapScale,boolean force) {} 方法修改的,没有其他办法修改此比例值。 那么我们只有...
在移动应用开发中,Webview是一个关键组件,它允许开发者在原生应用程序内嵌入网页内容。Android系统自带的WebView是Android应用中常用的一种方式,但随着时间的推移,开发者们发现了一些限制,比如性能问题、版本...
- 关闭WebView的自动缩放:`webSettings.setUseWideViewPort(false); webSettings.setLoadWithOverviewMode(false);` 以上就是WebView的基本用法,通过这些操作,开发者可以构建一个简单的网页浏览应用。当然,...