coverflow기능이 있는 앱을 개발중입니다.
자동 fling이 되도록 하려하고 있는데 어떤방식으로 넘겨야할지 모르겠습니다...
아래는 터치이벤트 부분인데 이부분에서 끄집어내어 handler를 통해 해당시간마다 돌리고 싶습니다....
(이게 가능한지도 사실 잘 모르겠습니다........)
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mIsSingleTap = event.getPointerCount() == 1;
if (mIsSingleTap)
mStartX = event.getX(0);
mBeginningCover = mSelectedCoverView.getNumber();
mStartScrollX = event.getX(0) + mScrollView.getScrollX();
break;
case MotionEvent.ACTION_MOVE:
int scrollOffset = (int) (mStartScrollX - event.getX(0));
int xOffset = (int) Math.abs(event.getX(0) - mStartX);
// If finger moves too much, not a single tap anymore:
mIsSingleTap = mIsSingleTap && (xOffset < 20);
if (!mIsSingleTap) {
mScrollView.scrollTo(scrollOffset, mScrollView.getScrollY());
int newCover = scrollOffset / mConfig.COVER_SPACING;
if (newCover < 0)
newCover = 0;
else if (newCover >= mNumberOfImages)
newCover = mNumberOfImages - 1;
if (newCover != mSelectedCoverView.getNumber()) {
setSelectedCover(newCover);
// Notify listener
if (null != mListener && null != mListener.get())
mListener.get().onSelectionChanging(this,
mSelectedCoverView.getNumber());
}
}
break;
case MotionEvent.ACTION_UP:
if (mIsSingleTap && 0 < mTouchedCovers.size()) {
int lowest = mTouchedCovers.first();
int highest = mTouchedCovers.last();
if (mSelectedCoverView.getNumber() < lowest)
setSelectedCover(lowest);
else if (mSelectedCoverView.getNumber() > highest)
setSelectedCover(highest);
else if (lowest <= mSelectedCoverView.getNumber()
&& highest >= mSelectedCoverView.getNumber()
&& null != mListener && null != mListener.get())
mListener.get().onSelectionClicked(this,
mSelectedCoverView.getNumber());
}
mScrollView.smoothScrollTo(mSelectedCoverView.getNumber()
* mConfig.COVER_SPACING, mScrollView.getScrollY());
if (mBeginningCover != mSelectedCoverView.getNumber()) {
// Notify listener
if (null != mListener && null != mListener.get())
mListener.get().onSelectionChanged(this,
mSelectedCoverView.getNumber());
}
// Clear touched covers
mTouchedCovers.clear();
break;
}
return true;
}
간단한 조언이나 답변이라도 감사히 받겠습니다.



