Android的引导页,开始用的连续几张引导页切换的时候中间会闪屏,后来改为这个,用起来也方便了,调整位置也比较方便
资源地址:https://github.com/binIoter/GuideView
public class GuideView implements Component {
@Override
public View getView(LayoutInflater layoutInflater) {
//引导页的布局
RelativeLayout rl = (RelativeLayout)layoutInflater.inflate(R.layout.guide_view,null);
rl.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
MainActivity.guide1.dismiss();
}
});
return rl;
}
@Override
public int getAnchor() {//取锚点view的位置
return Component.ANCHOR_BOTTOM;
}
@Override
public int getFitPosition() {//根据左边对其还是右边还是中间对齐
return Component.FIT_END;
}
@Override
public int getXOffset() {水平偏移调整
return 11;
}
@Override
public int getYOffset() {竖直偏移调整
return 11;
}
}
在对应的界面定义一个全局变量,并调用如下方法
public static Guide guide1;
//在相应的位置调用如下方法,注意通过SavePreferences.setData(IS_GUIDANCE_SHOWED, true)保存于判断状态。
private void showGuideView(){
GuideBuilder builder = new GuideBuilder();
builder.setTargetView(tv)
.setAlpha(200)
.setHighTargetCorner(10)
.setOverlayTarget(false)
.setOutsideTouchable(false);
builder.setOnVisibilityChangedListener(new GuideBuilder.OnVisibilityChangedListener() {
@Override
public void onShown() {
}
@Override
public void onDismiss() {
//第一个消失显示下一个
showGuideViewSecond();
}
});
builder.addComponent(new GuideView());
guide1 = builder.createGuide();
guide1.setShouldCheckLocInWindow(false);
guide1.show(this);
}