MotionEvent.ACTION_MOVE太快而且没有得到正确的X& Y坐标

时间:2012-04-14 11:18:44

标签: android

我正在使用Action_Move& ACTION_DOWN

获取x&我在我的应用程序中,所以我可以检查我的画布绘制线是否交叉/触摸但是Action_Move正在获得x&当我的代码全部为循环运行时,y坐标太快,得到另一个x& y坐标和代码再次运行

它在Action_Down中运行良好,因为在经过一段时间后会被触及,所以我的代码有时间做所有工作

我的问题是:如何检查我的所有代码然后移动到另一个坐标&这不会花费太多时间

这是我的一些代码 - >

@Override
public boolean onTouchEvent(MotionEvent event) {
    int ac=event.getAction();
    int x=(int) event.getX();
    int y=(int) event.getY();

int x1=0;int x2=0;





int x3=0;int x4=0;
    boolean dont=false;
    switch(ac){
    case MotionEvent.ACTION_DOWN:

for(int i=art.length-1;i>=0;i--){

    if(art[i]<=Integer.valueOf(x)){
        x1=art[i];

        if(x1+2<x){
            x3=x1+31;
            dont=true;
        }else{
            x3=x1+2;

        }
        break;
    }


}   

for(int i=aot.length-1;i>=0;i--){
    if(aot[i]<=Integer.valueOf(y)){

        x2=aot[i];


        if(y-x2==2||y-x2==1||y==x2&&dont==true){

            x4=x2+2;
        }else{
            x4=x2+46;


        }

        break;
            }
}


if(count.containsKey(x1+","+x2+","+x3+","+x4)){
    AlertDialog mk=new AlertDialog.Builder(getContext()).create();
    mk.setMessage("Game Over!");
    mk.show();
}
    break;
    case MotionEvent.ACTION_MOVE:


for(int i=art.length-1;i>=0;i--){

    if(art[i]<=Integer.valueOf(x)){
        x1=art[i];

        if(x1+2<x){
            x3=x1+31;
            dont=true;
        }else{
            x3=x1+2;

        }
        break;
    }


}   

for(int i=aot.length-1;i>=0;i--){
    if(aot[i]<=Integer.valueOf(y)){

        x2=aot[i];


        if(y-x2==2||y-x2==1||y==x2&&dont==true){

            x4=x2+2;
        }else{
            x4=x2+46;


        }

        break;
            }
}


if(count.containsKey(x1+","+x2+","+x3+","+x4)){
    AlertDialog mk=new AlertDialog.Builder(getContext()).create();
    mk.setMessage("Game Over!");
    mk.show();
}

break;
    }


    return true;

}

计数包含所有坐标以检查Hashmap中的Rect

&安培;在For Loop 1st中包含可能的x值

第二个包含可能的y值

编辑:

这些是aot&amp; art array of int;

art[0]=7;
art[1]=36;
art[2]=65;
art[3]=94;
art[4]=123;
art[5]=152;
art[6]=181;
art[7]=210;
art[8]=239;
art[9]=268;
art[10]=297;
art[11]=326;
art[12]=355;
art[13]=384;
art[14]=413;
art[15]=442;
art[16]=471;

        aot[0]=7;
        aot[1]=51;
        aot[2]=95;
        aot[3]=139;
        aot[4]=183;
        aot[5]=227;
        aot[6]=271;
        aot[7]=315;
        aot[8]=359;
        aot[9]=403;
        aot[10]=447;
        aot[11]=491;
        aot[12]=535;
        aot[13]=579;
        aot[14]=623;
        aot[15]=667;
        aot[16]=711;

0 个答案:

没有答案