参考:https://blog.csdn.net/cuenca/article/details/52356956
效果图如下:
这个效果如何实现呢??
viewpager的默认情况是裁剪过的,所以导致只能显示当前一张图片,如果想要显示如图,应该添加属性android:clipChildren=false,他的父布局也要这样设置,代码如下:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_190"
android:clipChildren="false">
<android.support.v4.view.ViewPager
android:id="@+id/vp_banner"
android:layout_width="match_parent"
android:layout_height="@dimen/dimen_164"
android:layout_marginBottom="@dimen/dimen_13"
android:layout_marginLeft="@dimen/dimen_19"
android:layout_marginRight="@dimen/dimen_19"
android:layout_marginTop="@dimen/dimen_13"
android:clipChildren="false">
</android.support.v4.view.ViewPager>
</FrameLayout>
然后将这种效果封装成一个类,代码如下:
/**
* Created by Administrator on 2016/5/6.
* <p>
* viewpager实现无限循环效果
* 暂时删除自动轮播效果
*/
public class InfiniteLoopViewPager2 {
public static final String TAG = "InfiniteLoopViewPager2";
private Context mContext;
private ViewPager mViewPager;
private List<BannerListBean.BannerItem> mArrayList;
private int currentPoint;
//切换页面的时间间隔
private static final int BANNER_INTERVAL = 3000;
//自动轮播发送消息的what
private static final int BANNER_REQUEST_CODE = 20;
//viewpager中图片个数的倍数
private static final int VIEWPAGER_SIZE