获取多触摸点

核心代码:

获取触摸点的个数和位置

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]1093 最大半连通子图(ZJOI2007)

    挺有意思的一道图论. Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:∀u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v ...

  2. python类库numpy中常见函数的用法

    1. numpy.reshape  重塑 reshape是一种函数,函数可以重新调整矩阵的行数.列数.维数. B = reshape(A,m,n) 返回一个m*n的矩阵B, B中元素是按列从A中得到的 ...

  3. Linux常用命令大全(归类)

    最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...

  4. mysql 拼接

    SELECT  RTRIM(CONCAT(belong_master_ip ,'(',host_name,')')) AS cloudIP  FROM `cloud_master_cfg`

  5. 一口一口吃掉Hibernate(五)——一对多单向关联映射

    版权声明:本文为博主原创文章,未经博主允许不得转载.如需转载请声明:[转自 http://blog.csdn.net/xiaoxian8023 ] 在上一篇博客<一口一口吃掉Hibernate( ...

  6. js保留两位小数数字

    /* * @descript: 保留两位小数,如果小数点大于两位小数,就向上取值保留两位小数<br/> * @time 2016-07-13 */function mathCeil(num ...

  7. C# 基础问答

    1.静态变量和非静态变量的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用 ...

  8. 【转载】RAID写惩罚(Write Penalty)与IOPS计算

    浅谈RAID写惩罚(Write Penalty)与IOPS计算 Character is what you are in the dark. 暗处最能反映一个人真正品格. ---------Apri ...

  9. ubuntu 卸载从源码安装的 emacs

    由于配置问题想卸了重装. 解压并进入你的源码所在目录: ./configure sudo make uninstall Done Reference: http://askubuntu.com/que ...

  10. java.lang.ClassCastException: oracle.sql.CLOB cannot be cast to oracle.sql.CLOB

    错误现象: [framework] 2016-05-26 11:34:53,590 -INFO  [http-bio-8080-exec-7] -1231863 -com.dhcc.base.db.D ...