안드로이드에서 엑셀 처럼 스크롤을 하기 위해서는 기본제공하는 ScrollView에서는 불가능하다.
그래서 하게된 편법.
Touch Event를 받아서 제어하는 방법이 있다.
위의 화면은 아래와 같이 구성되어 있다.
- ScrollView
- TableLayout
- Horizontal ScrollView
- TableLayout
- ScrollView
- Horizontal ScrollVIew
- TableLayou
총 4개의 스크롤 뷰로 구성되어 있는데
사용자가 화면을 Touch 한 좌표를 구해서 움직인 만큼 스크롤뷰도 함께 움직여 주는 것이 핵심이다.
순서는 아래와 같다.
- XML 또는 동적으로 스크롤뷰 4개 만들기
- Touch Event Listener 만들기
- Touch Event를 받아서 각각의 ScrollView에 좌표 전달해주기
- OnTouch
public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mCurrentX = (int) event.getRawX(); mCurrentY = (int) event.getRawY(); break; case MotionEvent.ACTION_MOVE: int movingX = (int) event.getRawX(); int movingY = (int) event.getRawY(); scrollBy(mCurrentX - movingX, mCurrentY - movingY); mCurrentX = movingX; mCurrentY = movingY; break; case MotionEvent.ACTION_UP: break; default: mCurrentX = (int) event.getRawX(); mCurrentY = (int) event.getRawY(); break; } mCurrentX = (int) event.getRawX(); mCurrentY = (int) event.getRawY(); return true; }
'Programming > Android' 카테고리의 다른 글
[Android]안드로이드 density 구하기 (0) | 2012.07.03 |
---|---|
[Android]안드로이드 SDK 버전 체크하는 방법 (0) | 2012.07.03 |
[Manifest]android SD카드에 어플 설치하기 (0) | 2012.03.21 |
cryptandroid (0) | 2011.11.27 |
안드로이드 ImageView Scale 설정 (0) | 2011.08.25 |