ViewPager实现自动循环切换
来源:互联网 发布:淘宝森女部落 编辑:程序博客网 时间:2024/05/22 03:13
一实现循环滑动
(1)在MyAdapter中首先修改getCount()方法中的大小,让ViewPager可滑动页面增多
(2)instantiateItem()方法中将position对图片数组求余:position%imageList.size()
(3)如果viewPager设置了OnPagerChangedListener方法,里面可能会有position,注意将position求余,否则可能会由于position作索引下标导致数组溢出异常。
(4)以上操作只能右循环,要实现左循环,只需把初始位置设置为getCount()方法中返回 大小的一半,那样我们就可以向左滑
(注意:这只是看起来循环,实际上只不过是N个View在重复这5中View。
如下:0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5.....0,1,2,3,4,5)
代码如下:
/**
* ViewPager中的显示View的imgs数组
* **/
Context context;
private int imgs[]={R.drawable.shicaivw1,R.drawable.shicaivw2,R.drawable.shicaivw3};
public InnerPagerAdapter (Context context) {
this.context=context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 1000;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==(View)arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv=new ImageView(context);
iv.setImageResource(imgs[position%3]);
container.addView(iv);
return iv;
}
}
二.实现自动滚动
/*
* 自动循环有多种实现方式:
* 1、定时器:Timer
* 2、开子线程 while true 循环
* 3、ColckManager
* 4、 用handler 发送延时信息,实现循环
*/
这里我们用第四种,比较高效:
public class MainActivity extends Activity {
ViewPager viewPager;
InnerPagerAdapter adapter;
private boolean isrunning=true;
Handler handler;
int a=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViewPager();
setRoller();
}
private void setRoller() {
handler=new Handler(){
public void handleMessage(Message msg) {
//延时,循环调用handler
if (isrunning) {
//让ViewPager滑动下一页
viewPager.setCurrentItem(a++);
}
handler.sendEmptyMessageDelayed(0,3000);
};
};
handler.sendEmptyMessageDelayed(0, 3000);
}
private void initViewPager() {
viewPager=(ViewPager)findViewById(R.id.am_vp_pager);
adapter=new InnerPagerAdapter(this);
viewPager.setAdapter(adapter);
}
/**
* Activity生命周期结束时终止定时,否则可能一直进行下去
* */
protected void onDestroy() {
super.onDestroy();
isrunning=false;
};
}
- ViewPager实现自动循环切换
- ViewPager实现自动无限循环切换
- 【ViewPager的学习】实现自动循环切换
- 【ViewPager的学习】三、实现自动循环切换
- viewpager自动无限循环实现
- 自定义ViewPager实现图片自动切换
- android-ViewPager实现图片自动切换
- ScheduledExecutorService实现viewpager的自动切换
- ViewPager实现自动切换图片(一)
- 学习日记--ViewPager实现图片自动切换
- 使用ViewPager实现图片自动切换
- android viewpager实现无限循环自动滚动
- ViewPager 循环切换
- ViewPager 循环切换
- viewpager同时实现自动切换和手动切换
- 自动切换的viewpager,实现广告页面的持续切换
- Android实现页面自动循环切换【Gallery】
- viewpager 自动切换
- 性能测试技巧
- 多项式求值
- 国内CVPR和图像处理领域的公司和研究机构
- Java Web中表单数据的获取
- Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件)
- ViewPager实现自动循环切换
- haproxy /admin跳转 不会在接口上再次加上admin
- Activity 与Fragments 使用总结
- SDUT 1269 走迷宫
- Android 获得手机信息工具类
- matlab调用opencv的函数
- 配置微信公众号二次开发接口java代码
- 699 - The Falling Leaves
- SQlite数据库使用总结