获取多触摸点

核心代码:

获取触摸点的个数和位置

public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    System.out.println("down");
                    break;
                case MotionEvent.ACTION_UP:
                    System.out.println("触摸点的个数:"+event.getPointerCount());
                    System.out.println(String.format("x1:%f y1:%f x2:%f y2:%f",event.getX(0),event.getY(0),event.getX(1),event.getY(1)));
//                  System.out.println("up");
//                  FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams();
//                  lp.leftMargin = (int)event.getX();
//                  lp.rightMargin = (int)event.getY();
//                  image.setLayoutParams(lp);
//                  System.out.println(String.format("x:%f,y:%f", event.getX(),event.getY()));
                    break;
                case MotionEvent.ACTION_MOVE:
                    System.out.println("move");
                    break;

两个手指缩放android机器人图片

frame.setOnTouchListener(new OnTouchListener() {

            @Override
                public boolean onTouch(View v, MotionEvent event) {
                    switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        System.out.println("down");
                        break;
                    case MotionEvent.ACTION_UP:
                        if (event.getPointerCount()>=2) {
                            float offsetx = event.getX(0)-event.getX(1);
                            float offsety = event.getY(0)-event.getY(1);
                            currentDistance = (float) Math.sqrt(offsetx*offsetx+offsety*offsety);
                            if (lastDisatance < 0) {
                                lastDisatance = currentDistance;
                            }else {
                                if (currentDistance-lastDisatance > 5) {
                                    FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams();
                                    lp.width = (int) (1.1f*image.getWidth());
                                    lp.height = (int) (1.1f*image.getHeight());
                                    image.setLayoutParams(lp);
                                    lastDisatance = currentDistance;
                                }else if (lastDisatance-currentDistance > 5) {
                                    FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams();
                                    lp.width = (int) (0.9f*image.getWidth());
                                    lp.height = (int) (0.9f*image.getHeight());
                                    image.setLayoutParams(lp);
                                    lastDisatance = currentDistance;
                                }
                            }
                        }
//                      System.out.println("触摸点的个数:"+event.getPointerCount());
//                      System.out.println(String.format("x1:%f y1:%f x2:%f y2:%f",event.getX(0),event.getY(0),event.getX(1),event.getY(1)));
    //                  System.out.println("up");
    //                  FrameLayout.LayoutParams lp = (LayoutParams) image.getLayoutParams();
    //                  lp.leftMargin = (int)event.getX();
    //                  lp.rightMargin = (int)event.getY();
    //                  image.setLayoutParams(lp);
    //                  System.out.println(String.format("x:%f,y:%f", event.getX(),event.getY()));
                        break;
                    case MotionEvent.ACTION_MOVE:
                        System.out.println("move");
                        break;
                default:
                    break;
                }
                return false;
            }
        });

Android多点触摸缩放图片-android学习之旅(四)的更多相关文章

  1. Android拖动和缩放图片

    Android拖动和缩放图片 2014年5月9日 我们在使用应用其中常常须要浏览图片.比方在微信其中.点击图片之后能够对图片进行缩放. 本博客介绍怎样对图片进行拖拽和缩放.这首先要了解Android中 ...

  2. Linux与Android 多点触摸协议【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/7833277 一.Linux与Android 多点触摸协议 为了使用功能强大的多点触控设 ...

  3. Linux & Android 多点触摸协议

    Linux & Android 多点触摸协议 Android4.0多点触摸入门 1 KERNEL 对于触摸屏的驱动我们简单的划分为两个主要的部分,一个是注册,另一个是上报. 1.1 注册 单点 ...

  4. Android多点触摸放大缩小图片

    1.Activity package com.fit.touchimage; import android.app.Activity; import android.graphics.Bitmap; ...

  5. Linux/Android多点触摸协议

    链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-touch-pr ...

  6. Linux Android 多点触摸协议 原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/os/71/12306571.shtml

    为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据.这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息. 使用说明 单点触摸信息是以ABS承载 ...

  7. 搞定android多点触摸模拟

    原理在android 创建多点触摸虚拟设备,然后往设备写模拟数据可以

  8. Linux/Android多点触摸协议【转】

    本文转载自: 链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-t ...

  9. Android 等比例缩放图片

    // 缩放图片 public static Bitmap zoomImg(String img, int newWidth ,int newHeight){ // 图片源 Bitmap bm = Bi ...

随机推荐

  1. WOJ 124. Football Coach 网络流

    Problem 1124 - Football Coach Description It is not an easy job to be a coach of a football team. Th ...

  2. hdu 5131(2014 广州—模拟)

    题意:给你n个人以及他们的杀人数.先按杀人数从大到小排名输出,然后是一些询问 一个人名,①输出杀人数比他大的人数和+1:②如果有人杀人数和他一样而且名字的字典序比他小,输出人数+1,没有则无视. #i ...

  3. [bzoj省选十连测推广赛2]T2七彩树

    抄自:http://blog.csdn.net/coldef/article/details/61412577 当时看了就不会,看了别人的题解不懂怎么维护,最后抄了个代码....... 给定一棵n个点 ...

  4. WiFi安全网桥探讨

    1 WiFi网桥现状 近年来,随着视频监控产品不断普及,无线网桥,特别是WiFi网桥,也越来越受到市场青睐.主要原因大概归属如下:1)同有线视频传输相比,无线视频传输无需布线,故安装及其方便,施工周期 ...

  5. python 用codecs实现数据的读取

    import numpy as np import codecs f=codecs.open('testsklearn.txt','r','utf-8').readlines() print(f) d ...

  6. 使用C# (.NET Core) 实现状态设计模式 (State Pattern)

    本文的概念性内容来自深入浅出设计模式一书 项目需求 这是一个糖果机的需求图. 它有四种状态, 分别是图中的四个圆圈: No Quarter: 无硬币 Has Quater 有硬币 Gumball So ...

  7. java的迭代器详解

    迭代器的引出 在jdk1.5版本之前是没有 foreach的,然而1.5版本就加上了foreach,而引入的新的foreach功能并不是在jvm上进行改进的因为代价太高,甲骨文工程师想到了一个比较好的 ...

  8. TeamViewer 服务队列网页怎么打开?有什么用?

    熟悉一款软件,除了要熟悉它的界面,还应该熟悉它的网站.可能会有很多人说,网站我当然知道了.但是TeamViewer的服务队列页面你真的熟悉吗?所以,今天小编就带大家深入的了解一下TeamViewer服 ...

  9. redux 最简例子

    方便初学redux的同学学习,这里是最简单的redux例子 1 import React, {Component, PropTypes} from 'react' 2 import ReactDOM ...

  10. git reset揭秘

    一.命令 首先,让我们来解释几个定义.   HEAD(头)     指向当前branch最顶端的一个commit,该分支上一次commit后的节点   Index(索引)     The index, ...