获取多触摸点

核心代码:

获取触摸点的个数和位置

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. ●BZOJ 2209 [Jsoi2011]括号序列

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2209 题解: Splay 很好的题,但是把智障的我给恶心到了...   首先不难发现,最后没 ...

  2. Linux学习之CentOS(十二)----磁盘管理之 认识ext文件系统(转)

    认识ext文件系统 硬盘组成与分割 文件系统特性 Linux 的 EXT2 文件系统(inode) 与目录树的关系 EXT2/EXT3 文件的存取与日志式文件系统的功能 Linux 文件系统的运行 挂 ...

  3. java获取当前系统时间

    阿里巴巴推荐 Timestamp d = new Timestamp(System.currentTimeMillis()); 唯一的好处就是除了Timestamp,没有再新建什么了

  4. 初识Redis系列之三:Redis支持的数据类型及使用

    支持的数据类型有五种: string(字符串).hash(哈希).list(列表).set(集合)及zset(sorted set:有序集合): 下面分别对这几种类型进行简单的Redis存取操作 1: ...

  5. C++ 实现俄罗斯方块

    C++ 实现俄罗斯方块 一.实验介绍 1.1 实验内容 本节实验我们进行设计俄罗斯方块前的思路分析,以及介绍ncurses 库的使用方法. 1.2 实验知识点 C++ 编程基础 ncurses 库的使 ...

  6. IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数

    package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  7. vue.js-路由

    1:编写router.js   import Router from "vue-router" import Vue from "vue" import rou ...

  8. 分享一个二维码图片识别控制台程序Demo

    怎么用NuGet和配置log4net就不介绍了,直接上代码(QRDecodeDemo.zip). (Visual Studio 2015 下的项目,用的.NET Framework 4.5.2) 吐槽 ...

  9. python学习之路网络编程篇(第一篇)socket初识

    什么是socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为socket.socket通常也称为“套接字”,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的 ...

  10. Node.js ZLIB

    Zlib 稳定性: 3 - 文档 可以通过以下方式访问这个模块: var zlib = require('zlib'); 这个模块提供了对 Gzip/Gunzip, Deflate/Inflate, ...