android单向无限循环的轮播图效果。
16lz
2021-01-26
在实际应用中 总会用到轮播图的效果。当然 android的话很多情况下都是通过viewpager实现的。但是通过使用发现,它的轮播效果是这样的 从最后一个切回回第一个时是重新跳转到第一个来实现的。这样效果不是很理想。那么如何让他在最后一张时还是向右滑动切换回第一张呢。最常用的方法是最大值法。就是在适配器中将参数设置成最大值。让他一直找不到边界,自然就一直向右切换了。如下段代码
private class MyPagerAdapter extends PagerAdapter { @Override public void destroyItem(View container, int position, Object object) { // TODO Auto-generated method stub // position %= imageViewsList.size(); //((ViewPag.er)container).removeView((View)object); // ((ViewPager)container).removeView(imageViewsList.get(position));这里最好不要用这个方法 会报异常 } @Override public Object instantiateItem(View container, int position) { position %= imageViewsList.size(); if (position < 0){ position = imageViewsList.size() + position; } ImageView imageView = imageViewsList.get(position); ViewParent vp = imageView.getParent(); if (vp != null){ ViewGroup parent = (ViewGroup)vp; parent.removeView(imageView); } // ((ViewPager)container).removeView(imageViewsList.get(position)); imageLoader.displayImage(imageView.getTag() + "", imageView); ((ViewPager)container).addView(imageViewsList.get(position)); return imageViewsList.get(position); } @Override public int getCount() { // TODO Auto-generated method stub return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { // TODO Auto-generated method stub } @Override public Parcelable saveState() { // TODO Auto-generated method stub return null; } @Override public void startUpdate(View arg0) { // TODO Auto-generated method stub } @Override public void finishUpdate(View arg0) { // TODO Auto-generated method stub } }
更多相关文章
- Android(安卓)贝塞尔曲线实现QQ拖拽清除效果
- android Canvas中的clipRect、drawBitmap
- AndroidActivity跳转动画,让你的APP瞬间绚丽起来
- 【Android开源项目解析】仿支付宝付款成功及"天女散花"效果实现
- Android(安卓)实现书籍翻页效果----源码篇 完结篇
- Android(安卓)使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧
- 实现类似Android的网格效果的列表视图
- Android动画特效
- Android实现IOS相机滑动控件