实现图片轮播的几种方法
来源:互联网 发布:虚拟歌姬软件 编辑:程序博客网 时间:2024/06/13 23:33
思路:开启一个子线程,在子线程中设置当前页卡的位置并向主线程中发送消息,每隔一定的时间间隔执行一次子线程,然后和handler接收子线程发过来的消息,并在这里刷新UI(设置当前位置的图片)。
1.使用timer实现
timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { currentItem = (currentItem +1) % imageViews.size(); handler.sendEmptyMessage(0); } },2000,2000); handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { viewPager.setCurrentItem(currentItem); return false; } });
2.使用Thread实现:这里在run方法里为了能一直使图片轮播,所以把把要执行的任务放在死循环里
new Thread(new Runnable() { @Override public void run() { try { while (true){ Thread.sleep(2000); currentItem = (currentItem + 1) % imageViews.size(); handler.sendEmptyMessage(0); } } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { viewPager.setCurrentItem(currentItem); return false; } });
3.使用线程池实现:首先在onStrat方法里开启线程池,scheduledExecutorService的scheduleWithFixedDelay方法里的参数是
1.子线程,2.初次执行时间,3.时间间隔,4.时间单位
@Override protected void onStart() { super.onStart(); ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); scheduledExecutorService.scheduleWithFixedDelay(new MyRunnable(),2,2, TimeUnit.SECONDS); // 或者用下面一种,效果是一样的 ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); scheduledExecutorService.scheduleAtFixedRate(new MyRunnable(),2,2,TimeUnit.SECONDS); } public class MyRunnable implements Runnable{ @Override public void run() { currentItem = (currentItem + 1)%imageViews.size(); handler.sendEmptyMessage(0); } }
刷新UI的代码
private Handler handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { viewPager.setCurrentItem(currentItem); return false; } });
0 0
- Android图片轮播效果的几种实现方法
- 实现图片轮播的几种方法
- 实现图片轮播的几种方法
- 实现图片自动轮播的几种方法
- 实现首页图片轮播的方法
- Android 实现图片轮播的三种方法
- 关于图片轮播的几种思路
- 图片轮播的实现
- 轮播图片的实现
- 图片无限轮播-最简单的实现方法
- 使用jQuery实现图片轮播的方法
- 实现图片轮播
- 实现图片轮播
- 图片轮播实现
- 图片轮播的两种实现方式(一)
- 最简单的图片轮播实现
- 图片轮播的jsp代码实现
- jQuery实现简单的图片轮播
- 标准字符串std::string和System::String, CString之间的转换
- 解读Android官方MVP项目单元测试
- SHOWSYNTAX --目标端显示sql重构
- SMTP协议详解
- Timestamp类型使用小结
- 实现图片轮播的几种方法
- 2016/11/11学习工作日志
- 反射如何破坏单例模式
- 【noip2013提高组day1T3】 货车运输 RMQ+LCA+倍增+最大生成树
- 常用正则表达式归纳
- 2>&1 的用法说明
- iOS开发 ☞ 图片处理
- js中的fromCharCode() charCodeAt() charAt()
- C语言系列(五)内存的分配与释放