android如何实现每隔几秒钟就更换一个ImageView中的图片?

时间:2022-11-28 17:32:37
我想在ImageView中每隔几秒中就更换一下ImageView中的图片,用Timer来控制,卫生么图片显示不出来阿?
如果写成这样,点一下按钮,当然能出现图片(不动的):

public class TimerChange extends Activity {

private Button mButton;
private ImageView mImageView;
private static int[] bgs = { R.drawable.girl001, R.drawable.girl002,
R.drawable.girl003, R.drawable.girl004 };

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mButton = (Button) findViewById(R.id.Button01);
mImageView = (ImageView) findViewById(R.id.ImageView01);

mButton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

mImageView.setImageDrawable(getResources().getDrawable(
bgs[0]));

}
});
}
}

可是我想让他动(每隔3秒钟就换一次图片),于是我写成这样:

public class TimerChange extends Activity {

private Button mButton;
private ImageView mImageView;
private static int[] bgs = { R.drawable.girl001, R.drawable.girl002,
R.drawable.girl003, R.drawable.girl004 };

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mButton = (Button) findViewById(R.id.Button01);
mImageView = (ImageView) findViewById(R.id.ImageView01);

mButton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {

public void run() {

int r = rand();
mImageView.setImageDrawable(getResources().getDrawable(
bgs[r]));
}
};
timer.schedule(task, 3000L, 3000L);
}
});
}

private int rand() {
int result = 0;
result = (int) (Math.random() * 4);
return result;
}
}

为什么这样写的话,点击按钮就什么反应都没有阿?(也没出现异常阿?)
我该怎么实现换图片阿?
请高手指点下!

6 个解决方案

#1


Timer 没用过, 使用 Handler 吧, 应该可以的

#2


其实你可以用toast来显示图片。。

用sleep()来控制时间。。

#3


正途应该是用service吧,每隔3秒通知activity更换图片。
ps:有android专版

#4


引用 2 楼 knightlcc 的回复:
其实你可以用toast来显示图片。。

 用sleep()来控制时间。。

toast可以显示图片么?

#5


Toast当然可以

#6


因为android里不可以在另外一个线程中操作当前view的吧。总之涉及到线程了 用handler。

#1


Timer 没用过, 使用 Handler 吧, 应该可以的

#2


其实你可以用toast来显示图片。。

用sleep()来控制时间。。

#3


正途应该是用service吧,每隔3秒通知activity更换图片。
ps:有android专版

#4


引用 2 楼 knightlcc 的回复:
其实你可以用toast来显示图片。。

 用sleep()来控制时间。。

toast可以显示图片么?

#5


Toast当然可以

#6


因为android里不可以在另外一个线程中操作当前view的吧。总之涉及到线程了 用handler。