用简单的方法,在android上实现手势放大缩小功能

Android ImageView 手势控制放大缩小 滑屏切换 package com.dawnpro.dfacmobile.cpzs; import java.io.InputStream; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import 阅读详情
package com.example.eventtest;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.gesture.GestureOverlayView;
import android.gesture.GestureOverlayView.OnGestureListener;
import android.graphics.Point;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class MainActivity extends Activity {

	
	double nLenStart = 0;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
	
	
	@Override
	public boolean onTouchEvent(MotionEvent event) {	
				
		int nCnt = event.getPointerCount();
		
		int n = event.getAction();
		if( (event.getAction()&MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_DOWN && 2 == nCnt)//<span style="color:#ff0000;">2表示两个手指</span>
		{
					
			for(int i=0; i< nCnt; i++)
			{
				float x = event.getX(i);
				float y = event.getY(i);
				
				Point pt = new Point((int)x, (int)y);
	
			}
			
			int xlen = Math.abs((int)event.getX(0) - (int)event.getX(1));
			int ylen = Math.abs((int)event.getY(0) - (int)event.getY(1));
			
			nLenStart = Math.sqrt((double)xlen*xlen + (double)ylen * ylen);
			
			
		}else if( (event.getAction()&MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP  && 2 == nCnt)
		{
			
			for(int i=0; i< nCnt; i++)
			{
				float x = event.getX(i);
				float y = event.getY(i);
				
				Point pt = new Point((int)x, (int)y);

			}
			
			int xlen = Math.abs((int)event.getX(0) - (int)event.getX(1));
			int ylen = Math.abs((int)event.getY(0) - (int)event.getY(1));
			
			double nLenEnd = Math.sqrt((double)xlen*xlen + (double)ylen * ylen);
			
			if(nLenEnd > nLenStart)//通过两个手指开始距离和结束距离,来判断放大缩小
			{
				Toast.makeText(getApplicationContext(), "放大", 3000).show();
			}
			else
			{
				Toast.makeText(getApplicationContext(), "缩小", 3000).show();
			}
		}
		
		
	
		return super.onTouchEvent(event);
	}


}


基础知识:

getAction()方法返回的是int类型,用到的只有低16位,其中:低八位是动作的类型,高8位是触摸点索引值的表示(单点为0,双点为1)

获得动作类型: int action = event.getAction() & ACTION_MASK 或者使用 getActionMasked()

获得触摸点索引类型: int pointerIndex = (event.getAction() & ACTION_POINTER_INDEX_MASK ) >> ACTION_POINTER_INDEX_SHIFT

或者使用 getActionIndex()

 

Android Studio 读取手机媒体图册实例——相册app(可实现缩略图、点击放大、手势放大缩小、左右滑动切换、画笔编辑保存) Android读取手机媒体图册实例——相册app(可实现缩略图、点击放大、手势放大缩小、左右滑动切换、画笔编辑保存) 阅读详情

相关推荐

Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能

首先推荐一下鸿洋大大的打造个性的图片预览与多点触控视频教程,这套教程教我们一步一步实现了多点触控实现对图片的平移和缩放的功能,这篇文章我将在鸿洋大大的基础之上做了一些扩展功能: 1.图片的惯性滑动 2.图片缩放小于正常比例时,松手会自动回弹成正常比例 3.图片缩放大于最大比例时,松手会自动回弹成最大比例实现图片的缩放,平移,双击缩放等基本功能的代码如下,每一行代码我都做了详细的注释public

阿拉灯神灯的专栏 9861

Android中实现双指缩放的功能

Android中实现双指缩放的功能 安卓中实现将图片缩放的功能提供了一个很好的类:ScaleGestureDetector,本章就介绍使用canvas和ScaleGestureDetector类实现缩放的功能,如果要想详细了解ScaleGestureDetector请参考博文Android的ScaleGestureDetector缩放类详解 1. 先初始化缩放比和图片居中绘制的坐标点 float...

weixin_43796132的博客 5054

Android实现view双指平移、缩放、旋转 (附完整源码)

Android实现view双指平移、缩放、旋转 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 534

Android App开发----界面缩放功能的实现

Android API 提供了ScaleGestureDetector类用于处理缩放手势,它主要由两部分组成: 一、ScaleGestureDetector主类,主要用于设置监测的对象和监听器,还有获取手势的各种功能相关信息,比如手指触点的坐标、触点间的距离等等。 二、主类的内部接口ScaleGestureDetector.OnScaleGestureListener,用于处理手势,让你可以自己编写程序规定手势要执行什么样的功能。 关系图大致如下...

徘徊的风 2443

Android图片手势交互:放大缩小与移动的实现

是Android中用于检测缩放手势的一个工具类。这个类能够在用户进行多指缩放操作时,提供缩放开始、进行中和结束的监听。其主要作用是为开发者提供了三个重要时间点的回调,分别是onScale和onScaleEnd。以下是主要方法的简要介绍:: 当缩放开始时调用。可以在此方法中进行初始化操作,比如记录初始缩放比例。: 当用户正在缩放时调用。此方法提供了一系列参数,如缩放因子(scaleFactor)、焦点点坐标(focusX, focusY)等。: 当缩放结束时调用。

weixin_29840475的博客 432

Android实现图片手势放大缩小功能

此工程专门针对Android应用中实现手势控制图片缩放的完全攻略,更可多张图片分别切换详细查看,采用了Matrix矩阵的方法,实例讲解了包括触摸点设置与各种冲突的处理等方面,相当全面,需要的朋友可以参考下

Android控件全解手册 - 任意View缩放平移工具-实现思路和讲解

这个功能肯定需要监听用户的手势,我本来想的是直接重新控件的onTouchEvent方法的,不过前人用了一个`GestureDetector`这个类及其子类和一些相关监听。这个以前确实没用到过,简单看了一下后,这是个好东西啊,缩放,平移手势全帮你写好了,还是系统自带的方法,有了这个神器,实现平移缩放还不是分分钟的事!

空名先生 2157

android图片的放大缩小移动手势识别

通过手势对图片放大缩小移动,包含三个类,其中BitmapUtil可以读取drawable中的图片,等比列缩放,保存至本地。

android实现控件的手势缩放、移动以及双击还原

我分四部分介绍:        1.Imageview利用Matrix和OnScaleGestureListener实现手势缩放;        2.在第一部分的基础上实现图片跟随手指进行滑动;        3.在一、二的基础上利用GestureDetector的OnDoubleTap回调实现图片双击还原;        4.在一、二、三的基础上将ImageView扩展为FrameLay...

wozuihaole的博客 3416

如何点亮一颗sensor

要点亮一个sensor需要从,时钟、sensorI2C,供电,reset脚,mipi的配置几个方面一一确认。 reset脚拉高 给sensor的时钟有没有。(目前用到的常为24MHZ) 供电 查看sensor的数据手册,看有几个电源,用示波器量一下是否为手册规定的电压 比如:DVDD 数字电压: AVDD模拟电压 DOVDD芯片引脚出来的电压等为多少。 sensor的I2C能否抓到 将I2C的口对应上,用示波器量取i2c的波形。 检查有应答并且数据正确。读写地址是否正...

weixin_40787463的博客 3646

【推荐算法】召回模型总结

【推荐算法】召回模型总结

m0_48086806的博客 6239

Android浅学两点触摸

Android浅学两点触摸安卓手机两点触摸,获取两点之间的位置变化,判断是放大,缩小还是移动package com.multitouchactivity;import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.widget.TextView;publi

走到无路可退 336

最新版 Akamai 逆向 风控破解

经过测试,捷星 jetstar.com,德州仪器 ti.com,w6 wizzair.com,还有一些航空公司的都是可以实现一个并发的有需要的可以。

m0_72605044的博客 6617

android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果

首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.)                             搜狐客户端                                    百度新闻客户端                              新浪微博                              凤凰新闻客

jj120522的专栏 5万+

【硬件自锁开关】用两个D触发器完成实用的自锁开关电路

性价比是做电子设计的人要考虑的事,在学会了用单片机解决大多数问题的时候,是否你也想过用简单的手段解决一个多数场合要解决的问题呢?按一下,输出状态由关闭变成开启,再按一下开启变成关闭。机械弹簧式的开关可以实现自锁的功能:钩子和弹簧将当前状态“储存”起来,这个能量为下一次触发的提供状态“翻转”的动力;在电子设计中,经常通过单片机的程序指令实现自锁:通过寄存器将当前电平状态暂存起来,下一次触发的时候寄存器内容“取反”,再将其输出到端口。可否用电路实现以上过程呢?完全可以,方案很简单,通过两个D触发器即可实现。

qq_33175704的博客 4253

在工作台 LS-DYNA 中检索和变换反作用力分量

在结构仿真中,通常需要由施加的位移或速度边界条件产生的反作用力。此外,通常需要根据用户定义的坐标系解析反作用力分量。在本文中,详细介绍了在Workbench (WB) LS-DYNA 中,相对于用户定义的坐标系检索和变换反作用力分量的过程。

jkh920184196的博客 885

安卓手势处理(三)之实现图片的放大和缩小

这一篇来实现下面的效果: 其实上面的效果可以用ScaleGestureDetector很容易实现,不过在这里我想自己动手实现一下这个简单的功能,然后在后面用GestureDetector来实现更全面的效果,并且封装成一个可支持手势放大缩小的Imageview。 ImageView的缩小放大是基于Matrix的,这个类其实是一个矩阵,放大、缩小、位移、旋转其实就是矩阵变换操作。具体可以看这篇文章:...

whoami_I的博客 1351

KUKA-外部自动运行模板程序——个人设计模式&思路

用于说明KUKA与西门子PLC外部自动交互模板的设计思路与使用流程

qq_39024187的博客 5605

Android手势放大缩小组件

每天学一点2020.4.22(Android-1)Android手势放大缩小组件1. 在Activity中使用在Fragment中使用 Android手势放大缩小组件 这次是我第一次分享每天所学到的东西。今天所要分享的是在Android中实现对组件进行缩放(包括ImageView,TextView等组件)。实现该功能主要依靠ScaleGestureDetector类,该类主要是用于识别一些特定的手...

qq_42866851的博客 1373

从零拆解快手Web端__NS_hxfalcon:JS逆向签名参数定位与复现

在JS逆向与前端反爬攻防中,签名参数总是绕不开的核心环节。无论是接口加密还是请求签名,其本质都是通过在客户端收集环境信息、时间戳与业务参数,经特定算法计算后生成用于服务端校验的动态令牌。理解这类参数的生成原理,不仅能提升逆向分析效率,也能帮助前端开发者更好地设计自身接口防护方案。在实际工程中,面对经Webpack打包且高度混淆的代码,直接全局搜索参数名往往难以奏效,需要结合请求抓包、调用栈跟踪、环境适配等方法逐步定位。此类签名参数广泛存在于现代Web应用的GraphQL或REST接口中,是接口数据安全的重要

weixin_29474431的博客 336

《一》:LBE,VR 大空间系列——场景环境需求解析

当前,大量 VR 体验活动在室内场地开展。因此,对于场地照明有特定要求:除天花板外,场地的所有表面均需有照明覆盖。这是为了保证玩家无论处于场地的哪个位置,地面与墙面都不会出现明显的影子。场地内不建议安装射灯或高强度的点光源,若已安装此类灯具,需使用柔光板进行遮盖。此外,要避免在阳光下使用 VR 设备台。参考图(请忽略其中Maker标签)

unitygroup的博客 942

Android 图片点击放大缩小手势操作以及解决Viewpager左右滑动与ImageView手势冲突导致左右滑动失效问题

在我的项目中,有点击图片banner后放大浏览的功能。我的做法就是创建一个专门的图片显示Activity,布局里面用ViewPage,这样就能控制图片的左右滑动,并且控制首先显示第几张图片。 功能是ok的,显示也是正常的。但我花费了好几天的时间来实现、完善这个功能。 ShowMoreImageActivity /** * 图片放大 */ public class ShowMoreImageActivity extends BaseActivity { @FindId(R.id.vp)

u014714188的博客 1879

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android图片的手动放大缩小

利用缩放因子进行图片的放大缩小,效果图如下 在实现过程中如出现直接崩溃的情况:在全局配置文件中加入android:largeHeap=&amp;quot;true&amp;quot;即可解决问题,在文章最后有现成代码 步骤: 1.布局文件 android:scaleType=&amp;quot;matrix&amp;quot;记得加上,不然没有效果 2.控件实例化及处理机制的取代 3.进行逻辑处理,并利用Matrix进行图片处理其中nowScale 及...

计蒙不吃鱼的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android实现图片的手动放大缩小(附带源码)

Android实现图片的手动放大缩小(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1895

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

android实现在线预览图片,手势放大缩小

android实现在线预览图片,手势放大缩小 简要描述 首先对文件类型进行判断。WPS不支持在线预览图片,当文件是doc、xls、pdf等,调用WPS。图片时,调用预览图片方法 1.判断文件类型方法 2.新建一个Activity类,并且继承Activity,来实现对图片的预览 Intent intent=new Intent(context, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

就是不掉头发 41万+

android 手势放缩_AIR Android:放大与缩小手势

放大与缩小手势(1)放大与缩小手势对应TransformGestureEvent. GESTURE_ZOOM事件类型,使用时要求两个手指触摸屏幕,同时向外或向内做放缩动作,如图3-2所示。图3-2 放缩手势放缩手势操作起来简单且直观,在触摸屏设备上的应用范围很广,比如浏览网页时控制页面上的字体大小,查看地图时控制地图的缩放级别等。下面的实例程序GestureZoom演示了如何使用ZOOM手势来控制...

weixin_39726408的博客 595
上一篇: linux cp -f还是提示的解决方案
下一篇: android 长度单位 dp dip sp px pt
hellochenlian
博客等级 码龄17年 629粉丝 295原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellochenlian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值