引导页逻辑图
逻辑图前半部分主要步骤
1. 在引导页活动的布局中添加ViewPager控件
2. 在活动中添加个容器List。代码如下
private List<View> mList = new ArrayList<>();
private View view1, view2, view3;
这三个view是三个不同的引导页界面
3. 分别为三个不同view创建布局界面,
4. 初始化View。代码如下
mViewPager =(ViewPager) findViewById(R.id.mViewPager);
view1 =View.inflate(this, R.layout.pager_item_one, null);
view2 =View.inflate(this, R.layout.pager_item_two, null);
view3 =View.inflate(this, R.layout.pager_item_three, null);
mList.add(view1);
mList.add(view2);
mList.add(view3);
5. 设置ViewPager的适配器
mViewPager.setAdapter(new GuideAdapter());
class GuideAdapter extends PagerAdapter {
@Override
public int getCount(){
returnmList.size();
}
@Override
public booleanisViewFromObject(View view, Object object) {
return view ==object;
}
@Override
public ObjectinstantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(mList.get(position));
return mList.get(position);
}
@Override
public voiddestroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView(mList.get(position));
//super.destroyItem(container, position, object);
}
}
后半部分步骤
1. 添加小圆点(方法)
在引导界面活动布局里添加三个小圆点图片,放入合适的位置,同时在活动中初始化三个小圆点图片控件
主要代码
private ImageView point1, point2, point3;
setPointImg(true, false, false);
//设置小圆点的选中效果
private voidsetPointImg(boolean isCheck1, boolean isCheck2, boolean isCheck3) {
if (isCheck1) {
point1.setBackgroundResource(R.drawable.point_on);
} else {
point1.setBackgroundResource(R.drawable.point_off);
}
if (isCheck2) {
point2.setBackgroundResource(R.drawable.point_on);
} else {
point2.setBackgroundResource(R.drawable.point_off);
}
if (isCheck3) {
point3.setBackgroundResource(R.drawable.point_on);
} else {
point3.setBackgroundResource(R.drawable.point_off);
}
}
2. 设置ViewPage滑动监听
主要代码
//监听ViewPager滑动
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public voidonPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
//pager切换
@Override
public voidonPageSelected(int position) {
L.i("position:" + position);
switch(position){
case 0:
setPointImg(true,false,false);
iv_back.setVisibility(View.VISIBLE);
break;
case 1:
setPointImg(false,true,false);
iv_back.setVisibility(View.VISIBLE);
break;
case 2:
setPointImg(false,false,true);
iv_back.setVisibility(View.GONE);
break;
}
}
@Override
public void onPageScrollStateChanged(intstate) {
}
});
}
3. 进入主页。在最后一个界面添加一个按钮控件,使用Intent进去另一个界面即可。
4. 跳过的使用。在活动的布局界面添加一个跳过样式的图片控件,让他在前面的引导页显示,最后的引导页消失。同时点击此图片控件,使用Intent进去另一个界面即可。主要代码如上
private ImageView iv_back;
iv_back= (ImageView) findViewById(R.id.iv_back);