等待Android

时间:2016-04-17 10:19:55

标签: android

我有以下问题:我的应用程序中有一个图像,位置将动态更改。以下代码已经有效:

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

image.setLayoutParams(layoutParams);
image.setPadding(startX, startY, 0, 0);
image.setVisibility(View.VISIBLE);

for (int i=0; i<10; i++) {
    startX+=10;
    image.setPadding(startX, startY, 0, 0);

    try {
        Thread.sleep(1000);
    }
    catch(InterruptedException e){
        e.printStackTrace();
    }
}

问题是,图像位置立即变为最终位置,所以我添加了Thread.sleep行。但是,现在线程休眠10x 3s然后图像变为最终位置。我也试过在一个新的线程中做到这一点,但也没有用。

有关如何实现目标的任何想法?我很高兴任何解决方案或输入。

1 个答案:

答案 0 :(得分:0)

您可以使用HandlerRunnable的组合来实现此行为:

第1步:定义Handler和Runnable

Handler handler = new Handler();
Runnable refreshRunnable = new Runnable() {
                    @Override
                    public void run() {
                      refreshView();
                    }
                }

第2步:这是你的refreshView函数:

private void refreshView() {
  count ++;  //Variable initialized at 0 in your class
  if (count < 10) {
    startX += 10;
    dotGreen.setPadding(startX, startY, 0, 0);
    dotGreen.invalidate();
    handler.postDelayed(refreshRunnable, 1000);
  }
}