控件一:Gallery 之无限循环的问题
2012-05-25 10:24
169 查看
Gallery每次滑动到最后一个的时候,在向后就滑不动了,或者第一个向前的时候,也是不能实现滑动的。这主要是有Gallery的position来决定的。
Gallery的position的值在0到getCount()之间,不能超出这样的一个范围。
所以在第一个的时候,position=0,所以不能向前滑动。
当在最后一个的时候position=getCount(),所以不能继续向后滑动。
如果,非要实现这两种不能滑动的情况怎么办呢?
那么,可以这样实现:
1、在自定义的Adapter中getCount()方法里面,返回一个远大于实际图片数量的值,那么position就会增大,当滑动到最后一个图片的,还可以接着往下面滑动。
3、这样,就实现了能在最后一张图片的时候,继续滑动。
在Activity里面定义gallery的时候在这样设置:
这样做,可能对性能有影响,而且是一种伪循环的效果,只是让position无限大,永远达不到而已。当然你也可以不用设置这么大,根据需要设置稍微大几倍就行了。
真正的循环如何实现,还不知道,等以后知道了再说。
Gallery的position的值在0到getCount()之间,不能超出这样的一个范围。
所以在第一个的时候,position=0,所以不能向前滑动。
当在最后一个的时候position=getCount(),所以不能继续向后滑动。
如果,非要实现这两种不能滑动的情况怎么办呢?
那么,可以这样实现:
1、在自定义的Adapter中getCount()方法里面,返回一个远大于实际图片数量的值,那么position就会增大,当滑动到最后一个图片的,还可以接着往下面滑动。
public int getCount() { return Integer.MAX_VALUE;//返回一个Integer的最大值,远大于实际图片的数量 }2、如果,光是这样,还是不行的,因为当position大于图片数组的话,会出现数组下标越界的异常,所以,在加载这个图片的时候,要实现对position进行处理。
Bitmap bitmap=BitmapFactory.decodeResource(context.getResources(), imagesId[position%imagesId.length]);对position取余就可以了。
3、这样,就实现了能在最后一张图片的时候,继续滑动。
在Activity里面定义gallery的时候在这样设置:
gallery.setSelection(adapter.getCount()/2);//改变最开始的position的数值就可以在最前面的时候,向前滑动。
这样做,可能对性能有影响,而且是一种伪循环的效果,只是让position无限大,永远达不到而已。当然你也可以不用设置这么大,根据需要设置稍微大几倍就行了。
真正的循环如何实现,还不知道,等以后知道了再说。
相关文章推荐
- 动态生成Gallery控件组合实现无限循环自动播放广告图片效果总结
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- 解决 Ubuntu 登陆界面无限循环 的问题
- Android UI控件之Gallery实现循环效果总结
- Android 高级UI设计笔记13:Gallery(画廊控件)之 循环显示图像
- 解决用户控件循环引用问题
- ViewPager实现无限循环轮播图控件
- android scrollView 内嵌ViewPager或Gallery等水平滑动控件冲突问题解决实现同时滑动
- Android UI控件之Gallery --拖动、覆盖、循环、3D图片浏览 效果之一
- android gallery控件的使用问题
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- Android UI控件之Gallery --拖动、覆盖、循环、3D图片浏览 效果之一
- Gallery控件中的Item全屏显示的问题
- Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
- spring batch 使用ItemReaderAdapter导致读写无限循环问题
- Kali linux更新后登录界面无限循环问题解决
- nextInt()方法在无限循环中,无法停止的问题
- Gallery 实现无限循环
- 手把手、脑把脑教你实现一个无限循环的轮播控件
- java 输入流异常处理并重新输入,无限循环抛异常问题处理