2

MotionEvent.ACTION_UPに問題があります。指を離す前にイベントが呼び出されます。

これが私が使用しているコードです。何を変更すればよいですか?助けてくれてありがとう!

public boolean onTouchEvent(MotionEvent e) {
    switch(e.getAction()) {
    case MotionEvent.ACTION_DOWN:
        if(checkColide(e.getX(), e.getY())) {
            isFootballTouched = true;
            downT = c.MILLISECOND;
            downX = e.getX();
        }
        break;
    case MotionEvent.ACTION_MOVE:
        //moveFootball(e.getX(), e.getY());
        break;
    case MotionEvent.ACTION_UP:
        upT = c.MILLISECOND;
        upX = e.getX();
        getVelocity();          
        break;
    }       
    return false;       
}
4

2 に答える 2

3

この 3 つのケースのいずれかが発生した場合は true を返してみてください

 public boolean onTouchEvent(MotionEvent e) {
switch(e.getAction()) {
case MotionEvent.ACTION_DOWN:
    if(checkColide(e.getX(), e.getY())) {
        isFootballTouched = true;
        downT = c.MILLISECOND;
        downX = e.getX();
    }
    return true;
case MotionEvent.ACTION_MOVE:
    //moveFootball(e.getX(), e.getY());
    return true;
case MotionEvent.ACTION_UP:
    upT = c.MILLISECOND;
    upX = e.getX();
    getVelocity();          
    return true;
}       
return false;       

}

于 2012-09-16T19:45:19.213 に答える
1

おそらくtrue、から戻る必要がありonTouchEvent()ます。戻るfalseということは、これに対するイベントの受信にViewもう関心がないことを意味します。お役に立てれば。

于 2012-09-16T19:45:45.643 に答える