이미지 슬라이딩은 다음의 코드로 가능하다.
우선 예네들을 부르고
import android.view.GestureDetector.OnGestureListener;
import android.view.View.OnTouchListener;
멤버변수를 선언하고
private GestureDetector mGesture;
private GestureDetector.OnGestureListener mGestureListener;
on Create에다가 얘들을 붙여주면 된다.
mGestureListener = new OnGestureListener() {
public boolean onDown(MotionEvent e) {
Log.d("hjh", "onDown");
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("hjh", "onLongPress");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
Log.d("hjh", "onScroll");
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("hjh", "onShowPress");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("hjh", "onSingleTapUp");
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
Log.d("hjh", "onFling");
return false;
}
};
mGesture = new GestureDetector(mContext, mGestureListener);
vImageView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
mGesture.onTouchEvent(event);
return false;
}
});
그런데 문제는... 다운이나 롱프레스의 경우 문제가 아니지만...
vImageView.setOnTouchListener(new OnTouchListener() { 에서 리스너를 달 때
달리는 넘이 스크롤이 없는 넘이면 스크롤과 플링(옆으로 쏴악 재껴주는... 이미지 슬라이딩의 핵심)
은 로그가 안 찍힌다는 것이다. 즉, 스크롤이 가능한 뷰에 리스너를 달아야 플링 이벤트를
캣치 할 수 있다는 것.
아놔. 구려. 걍 x, y 좌표 계속 캣치해부려. ㅋㅋ
그래도 안들호가 제공하는 API를 써야 편할 듯.
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.