0
... 내 앱에서 MotionEvent.ACTION_DOWN의 레이아웃을 업데이트 한 다음 모션 이벤트 좌표를 확인하여 버튼을 찾습니다. 나는 손가락이 다른 단추에 풀어 놓일 때 축배를 보여줄 수있다. 문제는 내 버튼에서 MotionEvent.ACTION_UP과 충돌하지 않고 다른 액션을 호출해야한다는 것입니다. 긴 클릭 핸들러를 구현했지만 작동하지 않는 '클릭'하지 않습니다. 너희들이 내 문제를 이해하기 바래.Android : 버튼을 길게 터치하는 동안 MotionEvent.ACTION_MOVE
내 앱을 의도 한대로 작동시키는 가장 좋은 방법은 무엇입니까?
내 클래스는 OnTouchListener, OnGestureListener
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
// UPDATE LAYOUT
break;
case MotionEvent.ACTION_UP:
// GET BUTTON X Y
if (x and y match the button location){
// DO ACTION
}else{
// DO NOTHING
}
// CHANGE LAYOUT TO INITIAL STATE
break;
case MotionEvent.ACTION_MOVE:
break;
}
return false;
mybutton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// DO STUFF
return true;
}
});
}
생각해 그게 전부로
onLongClickListener(...)
를 사용하려고 구현합니다. motionEvent_UP 후에 내 레이아웃이 다시 정상 상태로 전환되므로 손가락을 들어 올리지 않고 다시 터치하지 않고도 이동 이벤트에서 곧바로 길게 터치해야합니다. – user1915113음, 그러면 onTouchEvent()에 타이머를 추가하고 ACTION_DOWN으로 시작해야합니다.이 방법으로 자신의 onLongClickListener (...)를 구현할 수 있지만 손가락 위치를 주기적으로 확인하는 것을 잊지 마십시오. – user1049280
예 버튼 위치에 도달하면 상수 xy 업데이트를 없애는 방법이 있습니까? 그것은 매우 민감하기 때문에 한번 이상 이벤트를 발생시킵니다. 그리고 어떻게하면 긴 터치 타이머를 감지 할 때 위의 이벤트가 시작되는 것을 피할 수 있습니다 ... 둘 다 motionEvent_UP에서 발생하는 것 같습니다. – user1915113