문제는 레이아웃에 뷰가 있을때
그곳으로 스크롤하면 뷰로 좌표가 인식되서 엉망이 되더군요;;;
뷰의 좌표까지 반영하려면 어떻게 해야할까요...
일단 제가 만든겁니다...(사실 이곳저곳 참고)
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;
}
}