ListView를 보시면 화면을 터치한 후 드래그하는 속도에 따라 ListView의 스크롤링 속도가 변하는 것을 볼 수 있습니다. 천천히 하면 스크롤도 천천히 되고 빠르게 드래그하면 바퀴 돌 듯이 ListView가 스크롤 되지요. 이런 효과는 어떻게 구현될 수 있을까요? 안드로이드에서 제공하는 클래스를 통해 쉽게 구현할 수 있습니다. 다음의 코드를 보시죠.
public class MyOnTouchListener implements OnTouchListener {
private VelocityTracker mVelocityTracker;
public boolean onTouch(View v, MotionEvent event) { if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMovement(event);
switch (event.getAction()) { case MotionEvent.ACTION_DOWN: Log.v(TAG, "ACTION_DOWN"); break;
case MotionEvent.ACTION_MOVE: Log.v(TAG, "ACTION_MOVE"); mVelocityTracker.computeCurrentVelocity(1); float velocity = mVelocityTracker.getXVelocity(); break;
case MotionEvent.ACTION_UP: Log.v(TAG, "ACTION_UP"); if (mVelocityTracker != null) { mVelocityTracker.recycle(); mVelocityTracker = null; } break; } return true; } } |
출처 - http://anddev.tistory.com/16
'Programming > Android' 카테고리의 다른 글
Dual Screen Android Demo (0) | 2011.04.13 |
---|---|
화면 해상도 구하기 (0) | 2011.04.07 |
SharedPreference 예제 (0) | 2010.12.27 |
ListView 스크롤시 검은색 배경으로 바뀌는 문제 & Selector가 표시되지 않는 경우 (1) | 2010.12.03 |
알아두면 요긴한 FLAG_ACTIVITY 네 가지 (0) | 2010.08.17 |