레이아웃.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
이벤트
}
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
이벤트
}
if(motionEvent.getAction() == MotionEvent.ACTION_MOVE){
final int x = (int) motionEvent.getX();
final int y = (int) motionEvent.getY();
int slop = ViewConfiguration.get(view.getContext()).getScaledTouchSlop();
if ((x < 0 - slop) || (x >= view.getWidth() + slop) || (y < 0 - slop) || (y >= view.getHeight() + slop)) {
Log.e("영역밖입니다","영역밖입니다");
}
}
return true;
}
});
한 화면에 위와같은 이벤트가 지정되있는 뷰가 10개 그려져 있다고 가정했을때
해당뷰에서 터치move 이벤트가 발생하여 다른뷰 영역으로 이동하였을경우
현재 뷰에서 실행되고있던 이벤트가 중지되며 침범한 영영에 존재하는 뷰에터치이벤트가 실행될수있도록 구현하고 싶은데 어떤식으로 구현해야 할지를 모르겠습니다
기존 10개의 뷰의 배경색이 흰색이라고 할때 터치를 하면 뷰의 배경색상이 검은색으로 바뀐다고 할때
다른 영역으로 터치가 이동되면 검은색으로 바뀐영역이 다시 흰색으로 돌아가고
터치가 이동한 뷰의 배경색은 검은색으로 바뀌도록...
영역을 넘어갔을때 이벤트를 move이벤트를 종료시키고 현재 touch된 영역에 이벤트를 실행시켜 주면 될거같은데 터치 이벤트를 종료시키는 메소드가 있는지 잘 모르겠네요
혹시 아시는 방법이나 다른 방법으로도 구현가능한지 제가 생각하는 방법은 불가능한 방법인지 조언좀 부탁 드리겠습니다.