Motionevent.ACTION_UP постоянно стреляет?

1

В моей программе я рисую прямоугольник, пока палец не работает и не перемещается, чем стирает его после того, как палец вверх. это показать пользователю диапазон значений, которые он использует как "предположение", чтобы найти корень. однако прямоугольник никогда не появляется! Но, если я удалю вызов, чтобы закрыть прямоугольник в части "action_up", пользователь может нарисовать прямоугольник. Здесь код:

в функции on-draw:

if(dataline>1)//if greater than 1, draw rectangle
{
    myPaint.setColor(Color.CYAN);
    canvas.drawRect(tX1,0, tX2,canvas.getHeight(),myPaint);
}

в функции события движения:   public boolean onTouchEvent (MotionEvent ev) {       final int action = ev.getAction();

         switch (action) {
        case MotionEvent.ACTION_DOWN: {

        final float x = ev.getX();
        final float y = ev.getY();

        // Remember where we started
        mLastTouchX = x;
        mLastTouchY = y;
   tX1=(int)ev.getX();
   tX2=tX1;

       x_1 = ev.getX();
    x_1=(x_1-X1)/(zoom_x);
    clicks= 1;
    tX1=(int) ev.getX();//set first x coord
    tX2=tX1;// make second x coord equal to the first


        }

    case MotionEvent.ACTION_MOVE: {
        final float x = ev.getX();
        final float y = ev.getY();

        // Calculate the distance moved
        final float dx = x - mLastTouchX;
        final float dy = y - mLastTouchY;

        mLastTouchX = x;
        mLastTouchY = y;  



        dataline=2;//let onDraw() draw the rectangle while dragging finger
        tX2+= (int)dx;// find new second coordinate







    }
    case MotionEvent.ACTION_UP: {
        dataline=0;//if commented out, rectangle is drawn otherwise, it is never seen.
    }

         }

    return true;
}
  • 1
    Добавьте break; s
Теги:
events
motion

1 ответ

0

Проблема решена! Я узнал, что вам нужно поставить оператор возврата в каждом случае, иначе он просто запустит все случаи.

  • 0
    Нет, как сказал @Maaalte, вы должны ставить break s, а не return s. return просто выйдет из метода, break выйдет из оператора switch. download.oracle.com/javase/tutorial/java/nutsandbolts/...
  • 0
    хорошо да, это имеет смысл. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню