学习自http://blog.csdn.net/zhiyuan0932/article/details/52673169#reply
很贼的思路
(4)1234(1)
直接放代码吧 大意思没有
public class MainActivity extends AppCompatActivity { private ViewPager vpTest; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vpTest = findViewById(R.id.vp_test); int[] vpItemResArray = {R.drawable.item4_vp_test, R.drawable.item1_vp_test, R.drawable.item2_vp_test, R.drawable.item3_vp_test, R.drawable.item4_vp_test, R.drawable.item1_vp_test}; final List<View> vpItemList = new ArrayList<>(); for (int i = 0; i < 6; i ++) { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), vpItemResArray[i]); ImageView iv = new ImageView(this); iv.setScaleType(ImageView.ScaleType.FIT_XY); iv.setImageBitmap(bitmap); vpItemList.add(iv); } vpTest.setAdapter(new Adapter(vpItemList)); vpTest.setCurrentItem(1); vpTest.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { private int currentPosition = 1; @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { if (position == vpItemList.size() - 1) { currentPosition = 1; } else if (position == 0) { currentPosition = vpItemList.size() - 2; } else { currentPosition = position; } } @Override public void onPageScrollStateChanged(int state) { if(state==ViewPager.SCROLL_STATE_IDLE) { vpTest.setCurrentItem(currentPosition, false); } } }); } class Adapter extends PagerAdapter { private List<View> list; Adapter(List<View> list) { this.list = list; } @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(list.get(position)); return list.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(list.get(position)); } } }