做APP的时候难免用到新手引导的效果。
先放一张效果的图片吧。虽然丑了点,讲究实用吧。
本人在开发的时候,使用了github这位同学的开源代码,这里推荐一下开源的github的地址:点击打开链接
将github下载的导入自己的项目,然后gradle配置成功后,就可以使用了。
private void showGuideView() { GuideBuilder builder = new GuideBuilder(); builder.setTargetView(img_settest) .setAlpha(220)//设置透明度(0~255),值越小越透明 .setHighTargetGraphStyle(Component.ROUNDRECT)//设置遮罩形状(圆形和方形,方形可设置圆角大小以及padding) .setHighTargetCorner(50) .setHighTargetPaddingBottom(10) .setHighTargetPaddingTop(-9) .setOverlayTarget(false)//设置目标区域高亮显示 .setOutsideTouchable(false);//外部是否可点击取消浮层,false表示可以取消 builder.setOnVisibilityChangedListener(new GuideBuilder.OnVisibilityChangedListener() { @Override public void onShown() { } @Override public void onDismiss() { show.post(new Runnable() { @Override public void run() { showGuideView2();//可以继续添加显示下一个控件蒙层 } }); } }); builder.addComponent(new MyComponent());//添加蒙层上需要显示的图片文字等效果 guide = builder.createGuide(); guide.setShouldCheckLocInWindow(true); guide.show(this); }
关键代码就是这个样子的,针对的是某一个控件的新手引导的使用。
还有一个关键的蒙版层的编辑以及位置的定义如下:
/** * Created by Administrator on 2017/1/17 0017. */ public class MyComponent implements Component { @Override public View getView(LayoutInflater inflater) { RelativeLayout ll = (RelativeLayout) inflater.inflate(R.layout.guide_settest, null); return ll; } @Override public int getAnchor() { return Component.ANCHOR_BOTTOM; } @Override public int getFitPosition() { return Component.FIT_START; } @Override public int getXOffset() { return 30; } @Override public int getYOffset() { return 40; } }
这个layout就是自己想要在蒙版上面展示的东西。自己试一试就知道最后的效果是什么样子了。
具体的就这些代码,简单方便,大家可以细细研究一下封装好的内部的代码,可能会更加有所收获吧,也能更加按照自己的意愿来对这个新手引导进行一定的自定义。