`

WebView判断手势缩放

阅读更多
		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图片缩放

    当我们处理包含大图片的网页时,如何在WebView中进行有效的图片缩放是一个常见且重要的问题。本篇文章将深入探讨“webview大图片缩放”的相关知识点,以确保用户在查看这些图片时能获得良好的体验。 首先,我们了解...

    android中webview图片点击及图片手势操作

    1. 添加手势识别器:Android提供了GestureDetector和ScaleGestureDetector来处理用户的滑动和缩放手势。首先,需要创建这两个识别器实例,并重写相关回调方法。 ```java GestureDetector gestureDetector = new ...

    Android JavaScript打开webview图片、支持放大缩小

    总结起来,实现Android JavaScript打开Webview图片并支持放大缩小的关键步骤包括:开启Webview的JavaScript支持,注入JavaScript接口,处理图片点击事件,以及在Android端实现图片的全屏展示和手势缩放。通过这些...

    Android中实现WebView点击图片放大显示

    最后,为了让图片可以手势缩放,我们需要对ImageView进行一些配置: ```java imageView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { ...

    android WebView设置setBuiltInZoomControls(true)同时隐藏缩放按钮

    WebView设置setBuiltInZoomControls(true)后,隐藏缩放按钮的控件在webView的源码里是通过: private ZoomButtonsController mZoomButtonsController; 这个私有控件控制的,而且也没有public方法可以获得此...

    Android通过JS在线用webview加载PDF文件(无限放大版本)

    在Android开发中,有时我们需要在应用内部展示PDF文件,而Webview是一个常用的选择。Webview不仅可以加载HTML页面,还可以通过JavaScript接口与Android原生代码交互,实现更多功能。本教程将详细讲解如何在Android的...

    Android Webview滑动监听

    接下来,我们需要为Webview添加手势监听。可以使用`GestureDetector`来捕捉滑动、点击等手势: ```java GestureDetector gestureDetector = new GestureDetector(context, new GestureDetector....

    Android点击WebView实现图片缩放及滑动浏览效果

    博客地址:Android WebView中图片浏览及缩放效果 首先说一下处理这个要求的思路,首先我们要获取到html中的所有图片的url,并保存到集合中,当点击图片时,跳转 一个Activity用ViewPager进行显示,这样就实现了滑动浏览...

    移动端h5打开pdf项目源码,可手势捏合缩放,分段加载(终极版)

    基于pdf.js和jQuery,可手势捏合缩放,分段加载,支持canvas和svg两种渲染pdf模式,不支持本地绝对路径,支持相对路径和网络路径,支持ajax和fetch两者请求方式。在Android和IOS的webview上均可使用。...

    Android手势放大缩小组件

    今天所要分享的是在Android中实现对组件进行缩放(包括ImageView,TextView等组件)。实现该功能主要依靠ScaleGestureDetector类,该类主要是用于识别一些特定的手势,通过监听手势事件,从而进行相应的处理。下面就...

    android用WebView显示包含文字和图片的本地网页(支持放大缩小)

    在android的实际开发中有时候我们需要将文字和图片一起显示,可以用TextView和ImageView的组合来实现,其实用网页显示更容易,本文介绍android显示含有图片和文字的本地网页html,hml的方法,并支持放大缩小。

    模仿安卓左滑放回上一页的手势和动画 通用语WebView

    3. 实现手势识别器的代理方法,判断滑动手势的方向,并在适当的时候调用WebView的goBack方法: ```swift @objc func handlePanGesture(_ gestureRecognizer: UIPanGestureRecognizer) { guard let webViewSuperview...

    WebView2-20200512- WebView2Loader.dll.zip

    【WebView2Loader.dll详解】 WebView2 是微软推出的一款现代Web技术框架,用于在桌面应用程序中嵌入Web内容。它基于Chromium项目,提供了与最新Web标准兼容的浏览器内核,使得开发者可以在桌面应用中轻松集成网页...

    android WebView设置setInitialScale(...)后,修改设置的值,问题解决

    看了下WebView的源码,修改此缩放比例值WebView内部是通过: private void setNewZoomScale(float scale, boolean updateTextWrapScale,boolean force) {} 方法修改的,没有其他办法修改此比例值。 那么我们只有...

    crosswalk-webview比webview更好用

    在移动应用开发中,Webview是一个关键组件,它允许开发者在原生应用程序内嵌入网页内容。Android系统自带的WebView是Android应用中常用的一种方式,但随着时间的推移,开发者们发现了一些限制,比如性能问题、版本...

    webview的简单样例

    - 关闭WebView的自动缩放:`webSettings.setUseWideViewPort(false); webSettings.setLoadWithOverviewMode(false);` 以上就是WebView的基本用法,通过这些操作,开发者可以构建一个简单的网页浏览应用。当然,...

Global site tag (gtag.js) - Google Analytics