我想根据时间参数将图像定位在屏幕上的不同位置。 但使用此代码我的图像是静态的 -
package com.example.blahblah;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.*;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
public class Starts extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.starts);
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable() {
int i=10;
final ImageView im=(ImageView)findViewById(R.id.imageView1);
public void run() {
im.setX(i);
im.setY(i);
i=i+100;
}
}, 0, 4, TimeUnit.SECONDS);
}
}
我错过了什么?
答案 0 :(得分:2)
每个间隔重新开始,i = 10。你可以改用这样的东西。
private static class MyRunnable implements Runnable {
int i=10;
final ImageView im=(ImageView)findViewById(R.id.imageView1);
public void run() {
im.setX(i);
im.setY(i);
i=i+100;
}
}
// then in onCreate
Runnable r = new MyRunnable();
exec.scheduleAtFixedRate(r, 0, 4, TimeUnit.SECONDS);