平滑滚动/惯性滚动/动量滚动

时间:2010-12-28 19:25:01

标签: iphone android opengl-es matrix-multiplication

我在Android中有一个OpenGL ES视图,由一个矩阵控制进行翻译。我试图找出一种方法来获得动态滚动的提示,如谷歌地图应用程序或iPhone中所见。感谢。

2 个答案:

答案 0 :(得分:11)

答案 1 :(得分:1)

  1. 测量视图滚动的速度。
  2. 检测用户何时停止滚动。
  3. 逐渐降低滚动视图滚动的速度。
  4. 这样的事情:

    public void redraw() {
        myScrollView.ySpeed = myScrollView.lastY-myScrollView.y;
        myScrollView.xSpeed = myScrollView.lastX-myScrollView.x;
        if (!userIsScrolling && ySpeed > 0) {
            ySpeed--;
        }
        if (!userIsScrolling && xSpeed > 0) {
            xSpeed--;
        }
        myScrollView.lastY = myScrollView.y;
        myScrollView.y += ySpeed;
        myScrollView.lastX = myScrollView.x;
        myScrollView.x += xSpeed;
    }
    
    public void userStoppedScrolling() {
        userIsScrolling = false;
    }