回答
我有OpenGL
也不加速度計,但刷卡(稱爲甩在Android的API)沒有經驗並不難實現。你做出這樣的自定義視圖時需要的第一件事情,正在實施一項GestureDetector
,並調用其onTouchEvent()
在您看來的onTouchEvent()
GestureDetector mGD = new GestureDetector(getContext(),
new SimpleOnGestureListener() {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// beware, it can scroll to infinity
scrollBy((int)distanceX, (int)distanceY);
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float vX, float vY) {
mScroller.fling(getScrollX(), getScrollY(),
-(int)vX, -(int)vY, 0, (int)mMaxScrollX, 0, (int)mMaxScrollY);
invalidate(); // don't remember if it's needed
return true;
}
@Override
public boolean onDown(MotionEvent e) {
if(!mScroller.isFinished()) { // is flinging
mScroller.forceFinished(true); // to stop flinging on touch
}
return true; // else won't work
}
});
@Override
public boolean onTouchEvent(MotionEvent event) {
return mGD.onTouchEvent(event);
}
雖然OnGestureListener.onScroll()
直接調用View.scrollBy()
,爲onFling()
方法,你需要一個滾輪。
Scroller
的是,作爲參考說,封裝了滾動一個簡單的對象。它可以用於連續滾動或對fl react作出反應。 Scroller.fling()
開始一扔滾動的「模擬」裏面本身,通過觀察它,你可以用連續重繪動畫複製其光滑度:
@Override
protected void onDraw(Canvas canvas) {
// ....your drawings....
// scrollTo invalidates, so until animation won't finish it will be called
// (used after a Scroller.fling())
if(mScroller.computeScrollOffset()) {
scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
}
}
也就是說,直到動畫運行時,計算我們到達了點,滾動有。
作爲最後一個音符:記得在你的OnGestureListener.onDown()
返回true,即使你不想下來做任何事情,否則將無法正常工作。
並且要小心,因爲Android 2.2中的Scroller
有一個錯誤,即使它達到了作爲參數傳遞的限制,但它並不會實際結束,但計算出的偏移量會尊重它們,所以它實際上不會移動) 。
嗨邁克,thanx的reply.this這個概念,它工作正常,當只有畫布是畫BTI時IM繪製圖像+畫布(位圖),它不能正常工作。 – 2012-01-13 11:34:53
從這裏被盜http://stackoverflow.com/a/4951681/1228 – Will 2012-04-13 18:48:41
- 1. 平滑滾動
- 2. 平滑滾動 -
- 3. 平滑滾動
- 4. JScrollPane - 平滑滾動
- 5. jQuery平滑滾動
- 6. jquery平滑滾動
- 7. 平滑滾動texview
- 8. UITableView平滑滾動
- 9. 平滑滾動到
- 10. js平滑滾動
- 11. jQuery平滑滾動
- 12. jQuery平滑滾動不滾動
- 13. 平滑滾動到鼠標滾動div
- 14. 滾動視圖的平滑滾動
- 15. 滾動和平滑滾動碼
- 16. JavaScript的「平滑滾動」不會滾動
- 17. 使用鼠標滾動平滑滾動
- 18. 水平平滑滾動
- 19. jQuery平滑水平滾動
- 20. 水平平滑滾動
- 21. 選框不平滑滾動,需要100%平滑滾動選框
- 22. JS平滑滾動加載干擾平滑滾動點擊
- 23. 如何動畫滾動查看器以平滑滾動?
- 24. Bootstrap Navbar滑動滾動不平滑
- 25. 水平滾動圖像組在啓動後滾動滾動,然後平滑
- 26. 如何我的頁面滾動下來平滑滾動
- 27. 如何讓div滾動水平滑鼠上下滾動
- 28. 如何添加平滑滾動Bootstrap的滾動間諜功能
- 29. 鼠標滾輪平滑滾動
- 30. 平滑滾動鼠標滾輪?
對不起,你的問題是由不道德的用戶回答的。我建議你檢查這個問題:http://stackoverflow.com/questions/4951142/smooth-scrolling-in-android – Will 2012-04-13 18:49:12