0

アニメーションを作成するために、Android でビューの開始座標と終了座標を取得しようとしています。

イベント OnTouch を試してみましたが、最初の coordY にしかアクセスできません。

MotionEvent で試してみましたが、うまくいきませんでした。

public boolean onTouch(View v, MotionEvent event)
        {
            float x = event.getX();
            float y = event.getY();
            //Log.d("S&R", "Y "+y);
            switch (event.getAction() & MotionEvent.ACTION_MASK)
            {
                case MotionEvent.ACTION_DOWN:
                    Log.d("S&R", "ACTION_DOWN");
                    break;
                case MotionEvent.ACTION_UP:
                    Log.d("S&R", "ACTION_UP");
                    break;
                case MotionEvent.ACTION_MOVE:
                    Log.d("S&R", "ACTION_MOVE");
                    break;
            }
            return false;
        }

タッチが上から下か下から上かを知りたいだけです。

どうすればできますか?

ありがとうございました。

4

1 に答える 1

0

わかった!

public boolean onTouch(View v, MotionEvent event) {


            boolean isReleased = event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL;
            boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
            boolean isMoved = event.getAction() == MotionEvent.ACTION_MOVE;


            if(isPressed){
                Log.d("S&R","isPressed");
                lastY=event.getY();
                return true;
            }

            else if(isReleased){
                Log.d("S&R","isReleased");
                lastY=event.getY();
                return true;
            }

            else if(isMoved)
            {
               //Log.d("S&R","MOVE");
               Log.d("S&R","lastY=> "+lastY+" currentY=> "+event.getY());

               if(event.getY()<lastY)
               {
                   Log.d("S&R","up");

               }
                else if(event.getY()>lastY)
               {
                   Log.d("S&R","down");

               }
                lastY=event.getY();
                return true;
            }
            return false;
        }

みんなありがとう。

于 2015-09-03T09:07:02.117 に答える