문제는 레이아웃에 뷰가 있을때


그곳으로 스크롤하면 뷰로 좌표가 인식되서 엉망이 되더군요;;;


뷰의 좌표까지 반영하려면 어떻게 해야할까요...



일단 제가 만든겁니다...(사실 이곳저곳 참고)



package touch.demo.demo;


import android.view.*;

import android.view.View.OnTouchListener;

import android.widget.*;


public class Move implements OnTouchListener {

 /** Called when the activity is first created. */


 private ScrollView vScroll;

 private HorizontalScrollView hScroll;


  private static int Xpos = 0, Ypos = 0;

     

     public Move(HorizontalScrollView HS, ScrollView VS)

     {

    vScroll = VS;

    hScroll = HS;

     

     }

     


     public void moveIt() {

        

   

    initSetting(hScroll, vScroll);

         EventSetting();

     }

 

     private void EventSetting() {

 

    }

 

     private void scroll(int x, int y) {

         hScroll.scrollBy(x, 0);

         vScroll.scrollBy(0, y);

     }

 

     private void initSetting(HorizontalScrollView hScroll, ScrollView vScroll) {

 

         vScroll.setFadingEdgeLength(0);

         hScroll.setFadingEdgeLength(0);

 

        vScroll.setOnTouchListener(this);

        hScroll.setOnTouchListener(this);

     }

 

     public boolean onTouch(View v, MotionEvent event) {

         switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:

             Xpos = (int) event.getRawX();

             Ypos = (int) event.getRawY();

             break;

         case MotionEvent.ACTION_MOVE:

            int Xpos2 = (int) event.getRawX();

             int Ypos2 = (int) event.getRawY();

             scroll(Xpos - Xpos2, Ypos - Ypos2);

             Xpos = Xpos2;

            Ypos = Ypos2;

             break;

         case MotionEvent.ACTION_UP:

             break;

         default:

             Xpos = (int) event.getRawX();

             Ypos = (int) event.getRawY();

             break;

         }

         Xpos = (int) event.getRawX();

         Ypos = (int) event.getRawY();

         return true;

     }

 }