android viewpager轮播图滑到最后一页向左滑动到第一页,第一页向右滑动到最后一页,完整代码
时间: 2023-10-16 12:07:14 浏览: 145
以下是一个简单的实现轮播图的示例代码,其中使用了 ViewPager 和 PagerAdapter:
```java
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private int[] imageIds = new int[]{R.drawable.image1, R.drawable.image2, R.drawable.image3};
private List<ImageView> imageViewList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = findViewById(R.id.view_pager);
// 初始化图片列表
for (int imageId : imageIds) {
ImageView imageView = new ImageView(this);
imageView.setImageResource(imageId);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageViewList.add(imageView);
}
// 设置ViewPager的适配器
viewPager.setAdapter(new MyPagerAdapter());
// 设置ViewPager的滑动监听器
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// 当滑动到最后一页时,跳转到第一页
if (position == imageViewList.size() - 1) {
viewPager.setCurrentItem(0, false);
}
// 当滑动到第一页时,跳转到最后一页
else if (position == 0) {
viewPager.setCurrentItem(imageViewList.size() - 1, false);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
/**
* 自定义ViewPager的适配器
*/
private class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return imageViewList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = imageViewList.get(position);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
}
```
在 onPageSelected() 方法中,当滑动到最后一页时,将 ViewPager 的当前页设置为第一页,同时禁止滑动动画;当滑动到第一页时,将 ViewPager 的当前页设置为最后一页,同时禁止滑动动画。其中禁止滑动动画是通过第二个参数设置为 false 实现的。
阅读全文