1 package com.example.handldertest; 2 3 import android.os.Bundle; 4 import android.os.Handler; 5 import android.widget.ImageView; 6 import android.app.Activity; 7 8 9 public class MainActivity extends Activity { 10 11 private ImageView img; 12 //实例化图片数组,存放的是他们的id 13 private int[] imgs = {R.drawable.ali,R.drawable.girl,R.drawable.q}; 14 private int index = 0; 15 16 private Handler mHandler = new Handler(); 17 private MyRunnable mr = new MyRunnable(); 18 19 class MyRunnable implements Runnable{ 20 21 public void run() { 22 index++; 23 index = index%3; 24 25 img.setImageResource(imgs[index]); 26 27 mHandler.postDelayed(mr, 1000); 28 29 } 30 31 } 32 33 protected void onCreate(Bundle savedInstanceState) { 34 super.onCreate(savedInstanceState); 35 setContentView(R.layout.activity_main); 36 img = (ImageView) findViewById(R.id.imgview); 37 38 mHandler.postDelayed(mr, 1000); 39 } 40 41 }
然后我们是怎么首先图片轮播的呢?其实很简单,我们在主线程中postDelayed一个mr对象,然后再在mr对象的run方法中,然它将自己再postDelayed,这样子它就无限循环下去了。那么run方法也就无限循环了,我们只要在run方法中执行ImageView的图片显示逻辑即可。运行程序,效果如下图:
(2)Handler常用的一个方法小结
相信这些方法大家都不会感到陌生,在Handler的API中都是可以查阅到的。现小结如下:
postDelayed(Runnable r, long delayMillis) 延迟多少秒后直接会执行Runnable里的run方法
sendEmptyMessage(int what) 直接发送一个只包含what字段的消息
sendMessage(Message msg) 发送一个Message对象
removeCallbacks(Runnable r) 从Handler中移除一个Runnable对象
removeMessages(int what)
从Handler中移除一个what字段的消息
以上为转载博友:http://www.cnblogs.com/fuly550871915/archive/2015/10/18/4889428.html
更详细介绍,待续