我的Runnable自定义视图动画无法启动。

时间:2015-05-26 01:51:38

标签: android runnable

我被分配制作一个简单的Android应用程序游戏,用户通过倾斜手机控制屏幕上的球。该应用程序利用自定义视图绘制所有对象,并使用Runnable对象为球设置动画。请注意,x和y表示球的位置,vx和vy表示球的速度,fx和fy表示施加到球的力。 ix和iy代表手机的倾斜;我将这两个设置为虚拟值以测试应用程序,而不必担心暂时设置传感器管理器:

private Runnable animator = new Runnable() {
        @Override
    public void run() {
        boolean needNewFrame = false;
        long now = AnimationUtils.currentAnimationTimeMillis();

        float dt = Math.min(now - lastTime, 50) / 1000f;

        fx = - alpha * vx + beta * ix;
        fy = - alpha * vy + beta * iy;

        vx = fx * dt;
        vy = fx * dt;

        if(x<xMin||x>xMax-ball_radius||y<yMin||y>yMax-ball_radius)
            bounce();

        x = x + vx * dt;
        y = y + vy * dt;

        lastTime = now;



        needNewFrame = true;

        postDelayed(this, 20);
        invalidate();
    }
};

我已经设置了动画师,但它不会运行。我尝试在视图初始化上调用post(animator),但这不起作用。我该如何解决?

另外,如何设置手机倾斜的ix和iy变量?根据我的理解,传感器管理器应该从活动类设置。

The Custom View for the game I'm trying to make

1 个答案:

答案 0 :(得分:0)

实际上,动画确实可以成功播放。这只是动画播放速度非常慢。