3
이동하면 소리를 기반으로하는 간단한 프로그램을 시험 중입니다. 그래서 처음에는 소리가 나는 1을 연주하고 그 다음부터는 소리를내는 모든 동작을합니다. 카운트 4에서 나는 처음부터 플레이하도록 만들었다.Motionevent Action_MOVE는 이동하지 않아도 X와 Y를 계속 실행합니다.
여기에 문제가 있습니다. 손가락을 움직이지 않고 같은 위치에두면 소리는 여전히 1 씩 1 씩 유지됩니다. x 및 y 값 실행을 파악합니다. 이걸 어떻게 멈추게합니까 ??
OnTouchListener MyOnTouchListener= new OnTouchListener()
{
public boolean onTouch(View view, MotionEvent event)
{
switch(event.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
x = (int) event.getX();
y = (int) event.getY();
oldval = x+y;
break;
case MotionEvent.ACTION_MOVE:
{
Log.e("X value", "X is "+x);
Log.e("Y value", "Y is "+y);
try
{
Thread.sleep(500);
} catch (InterruptedException e) {
}
int newval= (int) (event.getX() + event.getY());
if(Math.abs(oldval-newval)>50)
{
Log.e("First", "next button");
longpressCount++;
if(longpressCount==1)
{
Log.e("1", "BUTTON PRESSED");
}
else if(longpressCount==2)
{
Log.e("2", "BUTTON PRESSED");
}
else if(longpressCount==3)
{
Log.e("3", "BUTTON PRESSED");
}
else if(longpressCount==4)
{
Log.e("4", "BUTTON PRESSED");
longpressCount = 0;
}
}
break;
}
}
return true;
}
감사합니다. Ty S는 감사하지만 이전 값을 어떻게 설정합니까? X와 Y의 옛 가치에 대해 이야기하고 있습니까? – TheDevMan
줄을 추가하여 편집 중입니다. – tsmith
감사합니다. Ty. S.이 작품 - 그냥 50 이상의 가치가 작동하지만 위의 내 논리를 사용하여 알아 냈지만 문제는 내가 위에서 아래로 스크롤 - 소리가 모두 재생됩니다 - 대신 하나의 소리를 재생하는 것입니다. 카운트는 항상 1을 더합니다 - 따라서 사운드가 나타납니다? 여기에 무슨 문제가 있다고 생각하니? – TheDevMan