Android控件——ListView——解决自动轮播跳转第一页流畅性问题

来源:互联网 发布:中地集团java怎么样 编辑:程序博客网 时间:2024/04/28 14:03

在做定时轮播图时,当图片轮播到最后一张图片时候,让它跳回第一张图片,有两种方式

假设图片总共5张,轮播到最后一张,itemID=4

1.如果预加载的下一张的itemID为0

@Overridepublic int getCount() {
<pre name="code" class="java">//设置数据适配器的item总数为<span style="font-family: Arial, Helvetica, sans-serif;">5个。</span>
return picList.size();}

<span style="font-size:24px;">currentPosition = (currentPosition+1)%picList.size();//当前(itemID+1)%<span style="font-family: Arial, Helvetica, sans-serif;">item总数</span></span>


这种方式产生的轮播效果为 itemID 4图>itemID 3图>itemID 2图>itemID 1图>itemID 0图

虽然也是一瞬间的跳转,但其间却轮播了4张图。而不是从itemID 4图>itemID 0图

2.如果预加载的下一张的itemID为5

@Overridepublic int getCount() {
//设置数据适配器的item总数为<span style="font-family: Arial, Helvetica, sans-serif;">Integer.MAX_VALUE个,相当于播不完了。</span>return Integer.MAX_VALUE;}

<span style="font-size:24px;">currentPosition = currentPosition+1;<span style="font-family: Arial, Helvetica, sans-serif;">//当前itemID直接在当前页</span><span style="font-family: Arial, Helvetica, sans-serif;">itemID+1</span></span>

种方式产生的轮播效果为 itemID 4图>itemID 5图,但是图片下标通过picList.get(position%picList.size())的转换,实际轮播的还是itemID 0图的图。

因为5%5=0;

这样这种方式比第一种方式就会流畅多。

0 0