本篇适合初入Android的新手学习,简单不复杂。
本Android 图片轮播的例子中,使用Handler消息传递机制
Handler类主要有两个作用:
1.在新启动的线程发送消息(到主线程)。
2.在主线程中获取处理信息。
接下来是本例核心代码:
final ImageView show = (ImageView)findViewById(R.id.show); final Handler myHandler = new Handler(){ public void handleMessage(Message msg) { if(msg.what == 0x1233){ show.setImageResource(imageIds[currentImageId++ % imageIds.length]);// 切换当前显示的图片 } } };
如果想让图片自动轮播,我们还需要一个计时器
//定义一个计时器,让该计时器周期性的执行指定任务 new Timer().schedule(new TimerTask() { @Override public void run() { //发送空消息 myHandler.sendEmptyMessage(0x1233); } },0,2000);
上面程序重写了Handler的handlerMessage(Message msg)方法,该方法用于处理消息:当新线程发送消息时,该方法会被自动回调,handlerMessage(Message msg)方法依然位于主线程之中,所以可以动态地修改ImageView的属性,从而实现动画效果。
第二部分通过Timer周期性地执行指定任务(发送空消息),Timer对象可调度TimerTask对象的本质就是启动一条新线程,由于Android不允许在新线程中访问Activity里的界面组件,因此程序只能在新线程里发送一条消息,通知系统更新ImageView组件(每次收到一条空消息,就更新一张图片)
以上就是一个简单的图片轮播功能的核心代码,如果想下载源码,请查看:
源代码下载:https://download.csdn.net/download/liu68686868/10430817