相关文章推荐
朝气蓬勃的沙发  ·  [转载]python – ...·  11 月前    · 
热心的楼梯  ·  ios - How to get the ...·  1 年前    · 

void java.util.Timer.schedule(TimerTask task, long delay, long period)
第一个参数,是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现public void run() 方法,因为 TimerTask 类 实现了 Runnable 接口。
第二个参数的意思是,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行run() 方法。
第三个参数的意思就是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。

然后使用该方式实现图片定时循环切换,代码如下:

 1 import java.util.Timer;
 2 import java.util.TimerTask;
 4 import android.app.Activity;
 5 import android.os.Bundle;
 6 import android.os.Handler;
 7 import android.os.Message;
 8 import android.widget.ImageView;
10 public class HandlerActivity extends Activity {
11 // 要切换的照片,放在drawable文件夹下
12 int[] images = { R.drawable.img1, R.drawable.img2, R.drawable.img3, };
13 // Message传递标志
14 int SIGN = 17;
15 // 照片索引
16 int num = 0;
18 @Override
19 public void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21 setContentView(R.layout.main);
22 final ImageView image = (ImageView) findViewById(R.id.image);
23 final Handler handler = new Handler() {
24 @Override
25 public void handleMessage(Message msg) {
26 // TODO Auto-generated method stub
27 super.handleMessage(msg);
28 if (msg.what == SIGN) {
29 image.setImageResource(images[num++]);
30 if (num >= images.length) {
31 num = 0;
32 }
33 }
34 }
35 };
36 new Timer().schedule(new TimerTask() {
37 @Override
38 public void run() {
39 // TODO Auto-generated method stub
40 Message msg = new Message();
41 msg.what = SIGN;
42 handler.sendMessage(msg);
43 }
44 }, 1000, 500);
45 }