이미지가 화면 밖으로 안나가게 하는 코드 질문 올렸다가

개굴딱지님과 후유 님의 도움으로 조건문은 완성했습니다.

이제 화면 밖으로는 나가지 않지만 범위를 벗어나면 멈춰버립니다.

else문에 어떻게 처리를 해주어야 다시 움직일까요?

 View.OnTouchListener touchListener = new View.OnTouchListener(){
  @Override
  public boolean onTouch(View v, MotionEvent event) {
   // TODO Auto-generated method stub
   x = (int)event.getX();
   Log.e("tag", "x"+x);
   
   y = (int)event.getY();
   Log.e("tag", "y"+y);
   
   switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
       v.setOnLongClickListener(longClickListener);
       break;
      case MotionEvent.ACTION_MOVE:
       if(selectImage == (ImageView)v){
        dx = x - selX;
        dy = y - selY;
        
        if(selectImage.getTop() > 0 && selectImage.getBottom() + selectImage.getHeight()/2 < displayHeight
          && selectImage.getLeft() > 0 && selectImage.getRight() < displayWidth){
         selectImage.layout(selectImage.getLeft() + dx, selectImage.getTop() + dy,
           selectImage.getRight() + dx, selectImage.getBottom() + dy);
        }
        
        preX = x;
        preY = y;
        return true;
       }
       break;

(저는 onDraw로 이미지를 그린 것이 아니고 이미지뷰로 그림을 그렸습니다. 그래서 invalidate()는 안됩니다.)


저 if문 다음에 else문을 넣어서 화면 범위 벗어났을때의 처리를 해줘어야할것 같은데

else{
         selectImage.layout(selectImage.getLeft() + dx, selectImage.getTop() + dy,
           selectImage.getRight() + dx, selectImage.getBottom() + dy);
        }

이렇게 하면 그냥 조건문 없는것과 똑같이 화면 밖으로 나가버립니다.

else문이 없으면 화면 경계에 닿으면 멈춥니다.

고수분들의 조언 부탁드립니다.