需求:
1、从后台(网络)获取图片
2、滑到最后一张图等待几秒后跳转到主界面
主要代码如下:
//XTestUtils.getGuideImages()存放图片的集合list if (XTestUtils.getGuideImages() != null && XTestUtils.getGuideImages().size() > 0) { GuideAdapter guideAdapter = new GuideAdapter(mContext, XTestUtils.getGuideImages()); viewpager.setAdapter(guideAdapter); } viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //进行判断是否是滑动到最后一张图片,进行给出时间跳转 if (XTestUtils.getGuideImages().size() - 1 == position) { handler.sendEmptyMessageDelayed(0, 1500); } } @Override public void onPageScrollStateChanged(int state) { } });
@Override public void handle(Message message) { switch (message.what) { case 0: mIntent = new Intent(mContext, MainActivity.class); startActivity(mIntent); finish(); break; } }
2、Adapter界面代码
public class GuideAdapter extends PagerAdapter { private Context mContext; private List<Integer> imgList; public GuideAdapter (Context mContext,List<Integer> imgList){ this.mContext = mContext; this.imgList = imgList; } @Override public int getCount() { return imgList.size(); } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { View view = View.inflate(mContext, R.layout.page_guide_item,null); ImageView imageView = (ImageView) view.findViewById(R.id.page_img); imageView.setBackgroundResource(imgList.get(position)); container.addView(view); return view; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { // super.destroyItem(container,position,object); 这一句要删除,否则报错 container.removeView((View)object); } }
完毕,一个简单的引导页完成了,还需要进行优化