博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gallery循环滑动
阅读量:6139 次
发布时间:2019-06-21

本文共 941 字,大约阅读时间需要 3 分钟。

        Gallery每次滑动到最后一个的时候,在向后就滑不动了,或者第一个向前的时候,也是不能实现滑动的。这主要是有Gallery的position来决定的。

Gallery的position的值在0到getCount()之间,不能超出这样的一个范围。
       所以在第一个的时候,position=0,所以不能向前滑动。当在最后一个的时候position=getCount(),所以不能继续向后滑动。

        可以这样实现循环滑动:

1、在自定义的Adapter中getCount()方法里面,返回一个远大于实际图片数量的值,那么position就会增大,当滑动到最后一个图片的,还可以接着往下面滑动。

   
<
span 
style
="color:#000000"
> public int getCount() {
          return 
<
span 
style
="color:#ff0000"
>Integer.MAX_VALUE
</
span
>;//返回一个Integer的最大值,远大于实际图片的数量
    }
</
span
>

 

2、如果,光是这样,还是不行的,因为当position大于图片数组的话,会出现数组下标越界的异常,所以,在加载这个图片的时候,要实现对position进行处理。 
   Bitmap bitmap=BitmapFactory.decodeResource(context.getResources(), <span style="color:#ff0000">imagesId[position%imagesId.length</span>]);
      对position取余就可以了。

3、这样,就实现了能在最后一张图片的时候,继续滑动。

在Activity里面定义gallery的时候在这样设置: 
    gallery.setSelection(<span style="color:#ff0000">adapter.getCount()/2</span>);//改变最开始的position的数值

    就可以在最前面的时候,向前滑动。

这样做,可能对性能有影响,而且是一种伪循环的效果,只是让position无限大,永远达不到而已。当然你也可以不用设置这么大,根据需要设置稍微大几倍就行了。

转载地址:http://aucya.baihongyu.com/

你可能感兴趣的文章
Jenkins持续集成环境部署
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
eclipse的maven、Scala环境搭建
查看>>