ViewPager
页面切换,定时页面切换
技术点: 1、使用第三方UI类,只需要将完整包名加入就行 2、Timer和ScheduledExecutorService 3、Handler+Message或者runOnUiThread(runnable)更新界面ui 4、ViewPager的适配器类 |
步骤: 1、布局 2、将要显示的图片,文字分别用int和String数组存起来 3、然后将布局中的显示的ImageView和显示的状态点分别存到一个ArrayList中去 4、设置viewpager的变化事件 5、在变化页面 onPageSelected中,将对应的文本标题和状态的点显示正确 定时切换页面 a)使用ScheduledExecutorService而不是Timer, b)定时的切换,使用handler+Message更新界面 在Activity可见(onStart)时,开启定时,不可见时(onStop)时,关闭定时 可见时,将当前的item页面也增加1 @Override
protected void onStart() {
super.onStart();
scheduledExecutorService = Executors.newScheduledThreadPool(imageIds.length);
Runnable command = new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// 将当前页面增加1,然后取余,为了保证最后一页可以循环到第一页page
currentItem = (currentItem + 1) % imageIds.length;
viewPager.setCurrentItem(currentItem);
}
});
}
};
scheduledExecutorService.scheduleWithFixedDelay(command , 2, 2, TimeUnit.SECONDS);
}
@Override
protected void onStop() {
super.onStop();
if (scheduledExecutorService != null) {
scheduledExecutorService.shutdown();
}
}
|
核心代码:
|
结果: |
12-01 16:11:29.922: E/AndroidRuntime(2966): at cn.zengfansheng.viewpager.MainActivity$MyPagerAdapter.destroyItem(MainActivity.java:84) |