回答
我有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