我们有时需要对view进行手势监听,通过两个手指开始距离和结束距离,来判断放大缩小,下面是实现代码,所有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)//2表示两个手指                {                    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;            }

 

更多相关文章

  1. android SeekBar双滑块
  2. Android中Gallery 点击图片放大
  3. CoordinatorLayout高级用法-自定义Behavior
  4. 安卓入门.控件样式
  5. 转:bitmap设置图片尺寸缩小,避免内存溢出/OutOfMemoryError的优化
  6. bitmap设置图片尺寸缩小,避免内存溢出/OutOfMemoryError的优化方
  7. android Bitmap、Drawable、byte[]相互转换
  8. Android(安卓)纹理定距离移动
  9. Android(安卓)使用HorizontalListView 实现图片底部轮播(带源码)

随机推荐

  1. vs xamarin android 监听返回键退出程序
  2. android 打开软键盘 关闭软键盘
  3. Android简单短信发送示例
  4. Android(安卓)Proguard 如何混淆package
  5. Android(安卓)ListView列表分组
  6. android字体闪烁动画(线程)
  7. Android关于SD卡中多层目录的创建
  8. Android(安卓)Localization
  9. Wakelock API详解
  10. android学习小结3