您的位置:首页 > 其它

viewPager Handler 的无限轮播

2018-01-27 09:05 309 查看
private ViewPager mVp;
int[] imgs = {R.drawable.c, R.drawable.b, R.drawable.azxc, R.drawable.awqe};
int i = 0;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
mVp.setCurrentItem(i);
i++;
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
tupian();
}

private void tupian() {
//定时器,每过一秒发送一次
new Timer().schedule(new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessage(0);
}
}, 0, 1000);
//设置适配器
mVp.setAdapter(new MyPageAdapter());
//设置viewpager的滑动事件
mVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
switch (position % imgs.length) {
case 0:
RadioButton rb1 = (RadioButton) findViewById(R.id.rb1);
rb1.setChecked(true);
break;
case 1:
RadioButton rb2 = (RadioButton) findViewById(R.id.rb2);
rb2.setChecked(true);
break;
case 2:
RadioButton rb3 = (RadioButton) findViewById(R.id.rb3);
rb3.setChecked(true);
break;
case 3:
RadioButton rb4 = (RadioButton) findViewById(R.id.rb4);
rb4.setChecked(true);
break;
}
}

@Override
public void onPageScrollStateChanged(int state) {

}
});

private class MyPageAdapter extends PagerAdapter {
@Override
public int getCount() {
return Integer.MAX_VALUE;
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(imgs[position % imgs.length]);
container.addView(imageView);
return imageView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}

<LinearLayout
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="200dp" />

<RadioGroup
android:id="@+id/rg"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<RadioButton
android:id="@+id/rb1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

<RadioButton
android:id="@+id/rb2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

<RadioButton
android:id="@+id/rb3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

<RadioButton
android:id="@+id/rb4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RadioGroup>

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: