Java android - ImageView滚动导致崩溃?

时间:2014-02-22 20:25:57

标签: java android android-imageview

我有一个功能,用于滚动我的图像视图,使其每0.1秒下降5个像素,但是一旦我运行此功能,我得到Sorry Application has stopped responding

您可以在下面查看我的代码。:

    void startGameLoop(){
    boolean alive=true;
    while(alive){

        int x = theSprite.getScrollX();
        int y = theSprite.getScrollY();
        y-=5;
        theSprite.scrollTo(x, y);
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

对此的任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:0)

如果将此代码Thread.sleep(100);放在将要发生的主线程上。 请使用延迟处理程序。处理程序可以更改ImageView之类的内容,因为它在主Ui线程上运行。 像这样......

private final Runnable timerRunnable = new Runnable() {
    @Override
    public void run() {
        int x = theSprite.getScrollX();
        int y = theSprite.getScrollY();
        y-=5;
        theSprite.scrollTo(x, y);
        if (!closing)
            startTimer();
    }
};

handler = new Handler();
startTimer();

/**
 * Start periodically callbacks.
 */
private void startTimer() {
    runOnUiThreadDelay(timerRunnable, 400L);
}

public void runOnUiThreadDelay(final Runnable runnable, long delayMillis) {
    handler.postDelayed(runnable, delayMillis);
}