博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 一个调用方便的高亮引导库
阅读量:6218 次
发布时间:2019-06-21

本文共 3652 字,大约阅读时间需要 12 分钟。

支持使用:

  • 安卓原生布局(例如RelativeLayout, FragmentLayout)
  • RecyclerView & ListView & GridView & ScrollView
  • ViewPager
  • Dialog
  • Fragment

功能:

  • 可一次显示单个或多个高亮的view
  • 描绘高亮view时可设置自定义画笔(paint)
  • 自定义高亮view的形状和形状的大小
  • 自定义提示view的显示动画
  • 提示view的相对位置
  • 链式调用,简单使用

效果图


使用

Gradle

添加到app的build.gradle:

dependencies {    implementation 'me.samlss:lighter:1.0.2'}复制代码

Maven

me.samlss
lighter
1.0.2
pom
复制代码

你可以指定highlight view所依附的父view,

通过使用以下代码来指定:

Lighter with(Activity activity) //使用 activity.getWindow().getDecorView 作为父view, 所以会全屏显示,参考图1    Lighter with(ViewGroup rootView) //使用 'rootView' 作为父view复制代码

完整调用:

Lighter.with(activity)                .addHighlight(new LighterParameter.Builder()                                .setHighlightedViewId(R.id.vp_btn_1)                                .setTipLayoutId(R.layout.layout_tip_1)                                .setLighterShape(new RectShape(5, 5, 30))                                .setTipViewRelativeDirection(Direction.BOTTOM)                                .setTipViewRelativeOffset(new MarginOffset(150, 0, 30, 0))                                .build())                .addHighlight(new LighterParameter.Builder()                        .setHighlightedViewId(R.id.vp_btn_2)                        .setTipLayoutId(R.layout.layout_tip_2)                        .setLighterShape(new RectShape(5, 5, 30))                        .setTipViewRelativeDirection(Direction.TOP)                        .setTipViewRelativeOffset(new MarginOffset(-400, 0, 0, 30))                        .build())                .show();复制代码

当你需要一次显示多个高亮的时候, 可调用addHighlight(LighterParameter...lighterParameters)

Lighter.with(activity)                .addHighlight(                        //一次显示两个高亮                        new LighterParameter.Builder()                                .setHighlightedViewId(R.id.vp_btn_1)                                .setTipLayoutId(R.layout.layout_tip_1)                                .setLighterShape(new RectShape(5, 5, 30))                                .setTipViewRelativeDirection(Direction.BOTTOM)                                .setTipViewRelativeOffset(new MarginOffset(150, 0, 30, 0))                                .build(),                        new LighterParameter.Builder()                                .setHighlightedViewId(R.id.vp_btn_2)                                .setTipLayoutId(R.layout.layout_tip_2)                                .setLighterShape(new RectShape(5, 5, 30))                                .setTipViewRelativeDirection(Direction.TOP)                                .setTipViewRelativeOffset(new MarginOffset(-400, 0, 0, 30))                                .build())                .show();复制代码

关于

Method Description
setHighlightedViewId 设置需要高亮的view id
setHighlightedView 设置需要高亮的view
setTipLayoutId 设置提示view的layout id
setTipView 设置提示view
setLighterShape 设置围着高亮view的形状
setShapeXOffset 设置形状的x偏移量
setShapeYOffset 设置形状的y偏移量
setTipViewRelativeDirection 设置提示view相对高亮view的方向
setTipViewRelativeOffset 设置提示view相对高亮view的便宜量
setTipViewDisplayAnimation 设置提示view的显示动画
build 创建LighterParameter对象
注意
  • setHighlightedViewId & setHighlightedView
  • setTipLayoutId & setTipView

上面两组方法中,只需使用其中一个方法,若都不使用的话,则会抛出异常

关于

Shape Description
Rect 可设置圆角和模糊度的矩形图形
Circle 可设置模糊度的圆形
Oval 可设置模糊度的椭圆形
ShapeXOffset & ShapeYOffset

参考下面图片 :

关于提示view的参数

方向

参考下面图片:

偏移量

当指定方向后(默认为左边), 偏移量计算基于方向

例如:

Left: topMargin 和 rightMargin生效

Right: topMargin 和 leftmargin生效

Top: 当高亮view处于屏幕的右边的时候, teftMargin & bottomMargin生效. 否则, rightMargin & bottomMargin生效

Bottom: 当高亮view处于屏幕的左边的时候, leftMargin 和 topMargin生效. 否则, rightMargin & topMargin生效

Animation

可使用任何动画

转载地址:http://tfmja.baihongyu.com/

你可能感兴趣的文章
ES6 学习笔记 - 字符串
查看>>
支付宝SDK下载地址
查看>>
iOS 动画七:Layer Animations
查看>>
[译]如何通过7个简单步骤保护您的Linux服务器
查看>>
建站过程实录
查看>>
markdown-掘金编辑器语法2018
查看>>
写给产品经理的12封信(第06封):时间管理
查看>>
从0到1,小白的前端摸索之路
查看>>
Python 与 Excel 不得不说的事
查看>>
腾讯云活动
查看>>
你的.vue文件就已经是你的文档了
查看>>
作为第三方平台开发小程序笔记
查看>>
干货!各种常见布局实现+知名网站实例分析
查看>>
容器服务kubernetes federation v2实践:多集群流量调度
查看>>
小程序中h5页面onShow实现及跨页面通信方案
查看>>
CryptoJS base64使用方法
查看>>
利用python批量修改MySQL表结构
查看>>
Metasploit 渗透测试手册第三版 第一章 Metasploit快速入门(翻译)
查看>>
021-cdh6.2+kylin2.6.2
查看>>
Linux - 进程
查看>>