Android把定时轮番放到ViewPager里面
2015-09-06 18:00
344 查看
import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewPager; import android.util.AttributeSet; public class CustomViewPager extends ViewPager{ private int viewPagerIndex = 0; private boolean viewPagerTaskIsRunning = false; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case -1: CustomViewPager.this.setCurrentItem((Integer) msg.obj); break; default: break; } } }; public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setOnPageChangeListener(final OnPageChangeListener listener) { super.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { viewPagerIndex = arg0; listener.onPageSelected(arg0); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { listener.onPageScrolled(arg0, arg1, arg2); } @Override public void onPageScrollStateChanged(int arg0) { if (arg0 == 0 && !viewPagerTaskIsRunning) { runViewpagerTask(); }else if (arg0 == 1 && viewPagerTaskIsRunning) { viewPagerTaskIsRunning = false; timer.cancel(); } listener.onPageScrollStateChanged(arg0); } }); } private Timer timer = null; /** * 执行viewpager定时任务 */ private void runViewpagerTask() { viewPagerTaskIsRunning = true; timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { viewPagerIndex++; Message msg = new Message(); msg.what = -1; if (viewPagerIndex >= getAdapter().getCount()){ viewPagerIndex = 0; } msg.obj = viewPagerIndex; handler.sendMessage(msg); } }; timer.schedule(task, 6000, 6000); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }
相关文章推荐
- Android学习路线
- Handler 机制(一)
- Android实现Banner图片循环轮播
- Android 系统源码情景分析读书笔记(1)----开发Android 硬件访问服务
- 【Android开发坑系列】如何让Service尽可能存活
- android Bitmap与string互转
- Android改变TextView中部分字体颜色
- Android实例-操作摄像头(XE8+小米2)
- Android IntentService完全解析 当Service遇到Handler
- Android Handler 四个使用实例 及HandlerThread的使用
- Speex语音压缩与解压在Android上的实现
- Android最佳实践之:StrictMode介绍
- Android HandlerThread 完全解析
- Android 图片压缩总结
- Android 亮度调节
- Android:自定义滚动边缘(EdgeEffect)效果
- Android 基于Message的进程间通信 Messenger完全解析
- Android开发实践:使用Service还是Thread
- Android开发实践:使用Service还是Thread
- Android源码分析-点击事件派发机制