이 소스를 보시고 도움이 되셨다면 저를 만나게 되신다면 쵸코렛을 사주시기 바랍니다.
병아리 유치원생이 짠 것 같은 코드이기 때문에
출처 표기를 하실 필요도 없으며 수정 및 배포도 자유입니다.
ScrollView sv ;
public void setScrollPager( )
{
/// 스크롤뷰 얻기
sv = (ScrollView)findViewById( R.id.scrollView1 ) ;
/// 스크롤뷰에 터치 리스너 설치
sv.setOnTouchListener( new OnTouchListener( )
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
/// 터치업 이벤트일 경우 처리
if( event.getAction() == MotionEvent.ACTION_UP )
{
/// 현재 스크롤 위치에서
/// ( (int)( 현재위치 + ( 아이템의 높이 / 2 ) / 아이템의높이 ) * 아이템의 높이 ) 로 이동시켜야함
/// 핸들러에 전달
hd.sendEmptyMessage( ((int)((sv.getScrollY( ) + 100 ) / 200)) * 200 ) ;
}
return false;
}
} ) ;
}
Handler hd = new Handler( )
{
public void handleMessage(android.os.Message msg)
{
/// 현재 위치와 목표 위치의 3분의 1 지점만큼 이동시킨다.
int pos = ( msg.what - sv.getScrollY() ) / 3 ;
/// 만약 차이가 10px이하면 정확한 목표지점으로 이동시킨다.
if( Math.abs( pos ) > 10 )
{ /// 목표지점으로 이동 By함수 사용
sv.scrollBy( sv.getScrollX(), pos ) ;
///Log.d( "==--==", " y : " + sv.getScrollY() + " to : " + msg.what + " pos : " + pos ) ;
/// 0.02초마다 재귀한다.
hd.sendEmptyMessageDelayed( msg.what, 20 ) ;
}
else
{
/// 이동하는 거리가 10 이하면 정확한 위치로 이동한다.
sv.scrollTo( sv.getScrollX(), msg.what ) ;
}
} ;
} ;
//// 자기 자신이 실제 차지하고있는 영역의 사이즈 구하는 함수
getMeasuredHeight( ) ;

킈킈
고또님이 저한테 사주셔야할 소스임.. 이거 1년반전에 재가 만들어본ㄱ ㅣ억이 있음 ㅋㅋㅋㅋ