开源库【GuideView】功能引导视图,支持fragment,只显示一次,接入超简单顺滑

###写在前面
其实已经有很多类似的开源库,比较满意的是这个库:https://github.com/qiushi123/GuideView-master,但它实现的效果和使用方式不是很6,本来是想对这个库提交PR,但发现改动有点小多,所以自己另写了这个库。

同时鸿神的这个库https://github.com/hongyangAndroid/Highlight 也不错,但可能我用的姿势不对,出现了找不到目标view坐标的问题,似乎也不支持fragment。

本开源库主要借鉴学习了这两个库的思路,在此向它们的作者们致谢!

###demo演示
这里写图片描述
###主要功能

  1. 提供【知道了】按钮,可简单地传入文字说明即可,点击【知道了】自动跳转
  2. 也可不用提供的【知道了】view,传入自定义的view,但需要在你希望的地方调用showNext()方法使引导视图在点击后继续跳转,详见demo。
  3. 构造方法中传入目标版本号,引导视图只会在目标版本中显示,不用担心app升级后会显示。
  4. 每个引导视图只会显示一次,根据版本号和目标viewId判断,所以不能有两个相同id的目标view。
  5. 记忆未显示的引导视图。示例:引导3、4、5在引导2后,显示引导2后退出app,下次到此位置会从引导3开始。
  6. 目标view3种显示形状、目标view和提示view8种相对位置、偏移量自定义
  7. 链式调用,丝般顺滑~

###使用方法

  • 在项目的根 build.gradle 文件中添加:
allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}
  • 在模块中添加依赖:
compile 'com.github.Sbingo:GuideView:1.1.0'
  • 在代码中使用
//可选
TextView tv = new TextView(this);
        tv.setText("自定义提示view");
        tv.setTextColor(ContextCompat.getColor(this, R.color.colorPrimary));
        tv.setTextSize(20);
        tv.setGravity(Gravity.CENTER);

        //测试时用这个方法
//        final GuideView.Builder builder = new GuideView.Builder(this, "1.0", true);
        //正式环境用这个方法,每个GuideView只会显示一次
        final GuideView.Builder builder = new GuideView.Builder(this, "1.0");
        //设置提示文字大小
	    builder.setTextSize(20)
        //添加8个引导视图
        builder.addHintView(text1, "测试1", GuideView.Direction.TOP, GuideView.MyShape.ELLIPSE, -50, -200)
                .addHintView(text2, "测试2", GuideView.Direction.RIGHT_BOTTOM, GuideView.MyShape.RECTANGULAR)
                .addHintView(text3, "测试3", GuideView.Direction.LEFT_BOTTOM, GuideView.MyShape.CIRCULAR)
                .addHintView(text4, "测试4", GuideView.Direction.RIGHT_TOP, GuideView.MyShape.ELLIPSE)
                .addHintView(text5, "测试5", GuideView.Direction.LEFT_TOP, GuideView.MyShape.CIRCULAR)
                .addHintView(text6, "测试6", GuideView.Direction.RIGHT, GuideView.MyShape.CIRCULAR)
                .addHintView(text7, "测试7", GuideView.Direction.LEFT, GuideView.MyShape.CIRCULAR)
                .addHintView(text8, tv, GuideView.Direction.BOTTOM, GuideView.MyShape.RECTANGULAR, -100, 100, new GuideView.OnClickCallback() {
                    @Override
                    public void onGuideViewClicked() {
	                     /*
				        自定义视图需要调用showNext()方法使引导视图在点击后继续跳转
				        调用处可以在点击自定义视图上某处时,不一定要在这里,这里只是示例
				         */
                        builder.showNext();
                    }
                });
        builder.show();

提供了6种addHintView方法,每调用一次该方法就是增加了一个引导视图。

主要参数为目标view,提示文字或提示view,提示相对于目标view的位置,高亮区域形状(圆形、矩形或椭圆)、偏移量、点击监听。

###完整源码和demo点这里

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值