Android实现ViewPager无限循环效果(二)
本文实例为大家分享了Android实现ViewPager无限循环效果的第二种方式,供大家参考,具体内容如下
原理:在Adapter中将getCount设置为无限大
packagecom.xiaomai.myproject.demo;
importandroid.os.Bundle;
importandroid.support.v4.view.ViewPager;
importandroid.view.ViewGroup;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importcom.xiaomai.myproject.R;
importcom.xiaomai.myproject.adapter.LoopViewPagerAdapter2;
importcom.xiaomai.myproject.base.BaseActivity;
importjava.util.ArrayList;
importjava.util.List;
/**
*CreatedbyXiaoMaion2016/10/917:44.
*
*/
publicclassLoopViewPagerDemo2ActivityextendsBaseActivity{
/**
*更新图片的时间
*/
privatestaticfinalintUPDATE_TIME=3*1000;
privateViewPagermViewPager;
privateLoopViewPagerAdapter2mAdapter;
/**
*指示Point
*/
privateLinearLayoutmLinearLayoutPonits;
/**
*图片资源集合
*/
privateint[]mImageIds;
/**
*图片集合
*/
privateListmImageList;
/**
*当前广告的index
*/
privateintmCurrentPageIndex;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
}
@Override
protectedvoidinitVariables(){
super.initVariables();
/**
*初始化图片的资源id
*/
mImageIds=newint[]{
R.mipmap.ic_launcher,
R.mipmap.ic_launcher,
R.mipmap.ic_launcher,
R.mipmap.ic_launcher,
R.drawable.my_toast,
R.drawable.my_toast,
R.drawable.my_toast,
R.drawable.my_toast};
/**
*添加ImageView
*/
mImageList=newArrayList<>();
//额外添加两张图片
ViewGroup.LayoutParamslayoutParams=
newViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
for(inti=0;i
代码:
packagecom.xiaomai.myproject.adapter;
importandroid.support.v4.view.PagerAdapter;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.ImageView;
importjava.util.List;
/**
*CreatedbyXiaoMaion2016/10/917:53.
*/
publicclassLoopViewPagerAdapter2extendsPagerAdapter{
privateListmImageList;
privateint[]mImageIds;
publicLoopViewPagerAdapter2(ListmImageList,int[]mImageIds){
this.mImageList=mImageList;
this.mImageIds=mImageIds;
}
@Override
publicintgetCount(){
returnInteger.MAX_VALUE;
}
@Override
publicbooleanisViewFromObject(Viewview,Objectobject){
returnview==object;
}
@Override
publicObjectinstantiateItem(ViewGroupcontainer,intposition){
ImageViewimageView=mImageList.get(position%mImageList.size());
imageView.setImageResource(mImageIds[position%mImageIds.length]);
container.addView(imageView);
returnmImageList.get(position%mImageList.size());
}
@Override
publicvoiddestroyItem(ViewGroupcontainer,intposition,Objectobject){
container.removeView(mImageList.get(position%mImageList.size()));
}
}
act_loopviewpager.xml
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。