2015-08-29 1 views
0
@Override 
public boolean onTouchEvent(MotionEvent event) { 

    switch(event.getAction()) 
    { 
    case MotionEvent.ACTION_DOWN: 
    { 
     cx=event.getX(); 
     cy=event.getY(); 
     Toast_Display.short_message(getContext(),"action down"+cx+" "+cy); 
     return true; 
    } 
    case MotionEvent.ACTION_MOVE: 
    { 
     distance = Math.sqrt(Math.pow(cx-getX(),2)+Math.pow(cy-getY(),2)); 
     Toast_Display.short_message(getContext(),"action move"+cx+" "+cy+" "+event.getX()+" "+event.getY()); 
     Toast_Display.short_message(getContext(),"action move"+distance); 
     break; 
    } 

    default: 
     return false; 
    } 
    invalidate(); 
    return true; 
} 

Получения же значения расстояния, при каждом расчете Althoug значения точек меняется. Я думаю, что проблема заключается в формуле расстояния, но не знаю, как ее сортировать.пытается выяснить radious между двумя точечными значениями, но расстояния остается таким же

+0

Где вы получаете значения 'cx, getX, cy, getY' из, когда вы находитесь внутри' ACTION_MOVE'? – TDG

+0

cx и cy объявлены глобально, но я не получал значения x и почему со ссылкой на событие ... они должны были получить event.getX() и и event.getY() –

ответ

0

Я думаю, что в ACTION_MOVE вы должны использовать event.getX() вместо getX().

+0

Большое вам спасибо, сэр ... Теперь работает :) –

Смежные вопросы