ViewPager无限轮播
ViewPager无限轮播
MainActivity
public class MainActivity extends Activity {
//全局变量
ViewPager vp;
int[] img={R.drawable.y,R.drawable.ty,R.drawable.c,R.drawable.love,R.drawable.timg};
List<ImageView> list=new ArrayList<ImageView>();
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager);
//找控件
vp= (ViewPager)findViewById(R.id.vp);
//模拟数据
for (int id:img) {
ImageView imageview=new ImageView(this);
imageview.setBackgroundResource(id);
list.add(imageview);
}
//创建ViewPager适配器
MyViewPagers adapter=new MyViewPagers();
vp.setAdapter(adapter);
}
//创建viewPager适配器
public class MyViewPagers extends PagerAdapter{
@Override
public int getCount() {
//返回Integer.MAX_VALUE集合最大就会无限轮播
return Integer.MAX_VALUE;
//返回list.size()集合的长度急就会自动轮播
// return list.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
position %=list.size();
container.addView(list.get(position));
return list.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
container.removeView((View) object);
}
}
//开始轮播的方法
public void start(){
//利用 handler发送延迟消息
handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
handler.postDelayed(this,2000);
}
},2000);
}
//停止播放的方法
//此方法也可省略
public void stop(){
handler.removeCallbacksAndMessages(null);
}
//获取焦点
@Override
protected void onResume() {
super.onResume();
//调用开始播放的方法
start();
}
//失去焦点
//可省略
@Override
protected void onPause() {
super.onPause();
//调用停止播放的方法
stop();
}
}
Layout布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"
></android.support.v4.view.ViewPager>
</LinearLayout>