Android多点触屏的有关问题

Android多点触屏的问题
写代码的时候遇到了问题。多点触屏问题。

问题是这样的。 我点击屏幕中的某一个位置,获取这个位置的坐标。 然后进行一系列的操作。

单触点已经没问题了。 多触点就有问题了。

网上查询了相应的资料然后自己写的代码如下:
在onTouchEvent函数中有如下代码

 
Java code
               int command = event.getAction() & MotionEvent.ACTION_MASK;
        
        switch(command) 
        {
        case MotionEvent.ACTION_DOWN:
            btn = this.getButtonPointFromXAndY((int)event.getX(), (int)event.getY());
            if(btn != null && !btn.isClicked()) {
                btn.setClicked(true);
                this.postInvalidate();
                System.out.println(btn);
            }
            break;
        case MotionEvent.ACTION_UP:
            btn = this.getButtonPointFromXAndY((int)event.getX(), (int)event.getY());
            if(btn != null && btn.isClicked()) {
                btn.setClicked(false);
                this.postInvalidate();
                System.out.println(btn);
            }
            break;
        case MotionEvent.ACTION_POINTER_DOWN:
            btn = this.getButtonPointFromXAndY((int)event.getX(1), (int)event.getY(1));
            if(btn != null && !btn.isClicked()) {
                btn.setClicked(true);
                this.postInvalidate();
                System.out.println(btn);
            }
            break;
        case MotionEvent.ACTION_POINTER_UP:
            btn = this.getButtonPointFromXAndY((int)event.getX(1), (int)event.getY(1));
            if(btn != null && btn.isClicked()) {
                btn.setClicked(false);
                this.postInvalidate();
                System.out.println(btn);
            }
            break;
        }


这样的话点击第一个按钮,再点击第二个按钮,松开第二个按钮可以出现效果。
但是点击第一个按钮,再点击第二个按钮,然后松开第一个按钮 就出错了。 效果和上面那个一样。

而且这个程序只支持两点触屏,三点就不行了。。


。。。 求助!!!!



最好写下代码。。。 谢谢啦。!!

------解决方案--------------------
网上这样的例子应该挺多的
------解决方案--------------------
首先你的手机必须支持多点触摸。
我给你一段ImageView多点触摸放大缩小的例子
package com.puyo.trip.tripbook.view;

import android.graphics.Matrix;
import android.graphics.PointF;
import android.util.FloatMath;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;

public class MulitPointTouchListener implements OnTouchListener { 
Matrix matrix = new Matrix(); 
Matrix savedMatrix = new Matrix(); 

static final int NONE = 0; 
static final int DRAG = 1; 
static final int ZOOM = 2; 
int mode = NONE; 

PointF start = new PointF(); 
PointF mid = new PointF(); 
float oldDist = 1f; 

@Override 
public boolean onTouch(View v, MotionEvent event) { 

ImageView view = (ImageView) v; 

switch (event.getAction() & MotionEvent.ACTION_MASK) { 
case MotionEvent.ACTION_DOWN: 

matrix.set(view.getImageMatrix()); 
savedMatrix.set(matrix); 
start.set(event.getX(), event.getY()); 
mode = DRAG; 


break; 
case MotionEvent.ACTION_POINTER_DOWN: 
oldDist = spacing(event); 
if (oldDist > 10f) { 
savedMatrix.set(matrix); 
midPoint(mid, event); 
mode = ZOOM; 

break;