Reputation: 73
I want to position the image at different location on screen based on the time parameter. But using this code my image is static -
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);
}
}
What did I miss?
Upvotes: 0
Views: 48
Reputation: 201537
Every interval restarts with i=10. You could use something like this instead.
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);
Upvotes: 2