Android--监听View的两个指头是放大和缩小
private double nLenStart = 0;//监听 WebView所用手势 @Override
public boolean onTouch(View v, 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(), "放大", Toast.LENGTH_SHORT).show();
tv_web_danGe.getSettings().setTextSize(WebSettings.TextSize.LARGER);
tv_web_danGe.reload();
tv_web_danGe.loadDataWithBaseURL(null, getHtmlData(content),"text/html","UTF-8",null);//显示WebView
} else {
Toast.makeText(getApplicationContext(), "缩小", Toast.LENGTH_SHORT).show();
tv_web_danGe.getSettings().setTextSize(WebSettings.TextSize.NORMAL);
tv_web_danGe.reload();
tv_web_danGe.loadDataWithBaseURL(null, getHtmlData(content),"text/html","UTF-8",null);//显示WebView
}
}
return false;
}
Android--监听View的两个指头是放大和缩小的更多相关文章
- Android监听view的attached或detached状态
我们在开发中,希望监听View的attached或detached状态,来进行比如eventbus的注册与解注册的操作,非常的方便实用. 可以使用系统给我们提供的listener,代码使用如下: mV ...
- android activity中监听View测量完成的4种方式
在开发中经常碰到需要在activity初始化完成后获得控件大小的情况. 但是这个操作我们不能在oncreate.onresume等生命周期方法中调用,因为我们不知道何时view才能初始化完成 为此,特 ...
- Android监听ScrollView滑动到顶端和底部
Android监听ScrollView滑动到顶端和底部 package cn.testscrollview; import android.os.Bundle; import android. ...
- Android监听系统短信数据库变化-提取短信内容
由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...
- Android监听返回键、Home键+再按一次返回键退出应用
Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME @Override public boolean onKeyDown( ...
- Android监听来电和去电
要监听android打电话和接电话,只需下面2步骤1.第一步,写一个Receiver继承自BroadcastReceiver import android.app.Service; import an ...
- Android监听应用程序安装和卸载
Android监听应用程序安装和卸载 第一. 新建监听类:BootReceiver继承BroadcastReceiver package com.rongfzh.yc; import android. ...
- Android 监听网络变化
Android 监听网络变化
- android 监听返回键
android监听返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE ...
随机推荐
- JavaSE-java8-谓词复合的用法
谓词接口包括三个方法: negate. and 和 or,让你可以重用已有的Predicate来创建更复杂的谓词 一.比如可以用negate方法来返回一个Predicate非 public class ...
- ASP.NET Core 1.0 Configuration 配置管理
documentation: https://docs.asp.net/en/latest/fundamentals/configuration.html github: https://github ...
- What does -> do in clojure?
https://stackoverflow.com/questions/4579226/what-does-do-in-clojure
- Log4j和Log4j2的区别
Log4j是Apache的一个开源项目,我们不去考究它的起源时间,但是据我了解,log4j 1已经不再更新了. 下面我就以列举的方式来浅谈log4j和log4j 2的不同之处. 一.配置文件类型 lo ...
- es6学习笔记9--函数的扩展
函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,为了避免这个问题,通常需要先判断一下参数y是否被赋值,如果没有,再等于默认值. ES6允许为函数的参数设置默认值,即直接写在参 ...
- HDU 3613 Best Reward(拓展KMP算法求解)
题目链接: https://cn.vjudge.net/problem/HDU-3613 After an uphill battle, General Li won a great victory. ...
- jQuery选择器遇上一些特殊字符
学习jQuery过程中,发现一些特殊字符,如“.”,“#”,"(","]"等.它在选择器应用时,按照普通处理就会出错.解决办法,就是使用转义字符来处理,这有点象 ...
- SQL 获取时间格式
2018-12-17 22:31:01 SQL : CONVERT(varchar(100), GETDATE(), 20) Oracle: to_date(SYSDATE(),'yyy ...
- DataSet & DataTable &DataRow 深入浅出
本篇文章适合有一定的基础的人去查看 ,最好学习过一定net 编程基础在来查看此文章. 1.概念 DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖 ...
- MVC的使用
演示产品源码下载地址:http://www.jinhusns.com