引导页
此处用四张图片来做引导页面,同时在最后一个页面提供一个按钮,点击进入主界面。
//把引导页加入到集合中,views是一个ArrayList
LayoutInflater inflater = LayoutInflater.from(this);
views.add(inflater.inflate(R.layout.view_guide_01, null));
views.add(inflater.inflate(R.layout.view_guide_02, null));
views.add(inflater.inflate(R.layout.view_guide_03, null));
views.add(inflater.inflate(R.layout.view_guide_04, null));
既然用到了ViewPager,那肯定会用到PagerAdapter并必须实现以下几个方法
destroyItem(), getCount(), instantiateItem(), isViewFromObject()
提示一下destroyItem(),instantiateItem()两个方法在高版本上已经过时了,分别把他们的第一个参数换成ViewGroup 即可。
public class GuidePagerAdapter extends PagerAdapter {
private List views;
private Activity activity;
public GuidePagerAdapter(List views, Activity activity) {
this.views = views;
this.activity = activity;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(views.get(position));
}
@Override
public int getCount() {
return (views == null) ? 0 : views.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position), 0);
//当滑动到最后一页的时候,监听按钮
if (position == views.size() - 1) {
TextView tvEnter = (TextView) container.findViewById(R.id.tv_guide_enter);
tvEnter.setText(String.format(ResUtil.getString(R.string.guide_enter), APPUtil.getVersionName(activity)));
tvEnter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//在此记录曾经浏览过导航页,下次启动将不会进入导航页
SPUtil.put(Constant.SP_IS_FIRST_LOGIN, true);
StartActivityUtil.startActivity(activity, MainActivity.class);
activity.finish();
}
});
}
return views.get(position);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return (arg0 == arg1);
}
}