支持使用:
- 安卓原生布局(例如RelativeLayout, FragmentLayout)
- RecyclerView & ListView & GridView & ScrollView
- ViewPager
- Dialog
- Fragment
功能:
- 可一次显示单个或多个高亮的view
- 描绘高亮view时可设置自定义画笔(paint)
- 自定义高亮view的形状和形状的大小
- 自定义提示view的显示动画
- 提示view的相对位置
- 链式调用,简单使用
效果图
Lighter
Lighter
Lighter
Lighter
Lighter
使用
Gradle
添加到app的build.gradle:
dependencies {
implementation 'me.samlss:lighter:1.0.3'
}
Maven
<dependency>
<groupId>me.samlss</groupId>
<artifactId>lighter</artifactId>
<version>1.0.3</version>
<type>pom</type>
</dependency>
你可以指定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();
关于 LighterParameter.Builder
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
Shape | Description |
---|---|
Rect | 可设置圆角和模糊度的矩形图形 |
Circle | 可设置模糊度的圆形 |
Oval | 可设置模糊度的椭圆形 |
ShapeXOffset & ShapeYOffset
参考下面图片 :
Lighter
关于提示view的参数
方向
参考下面图片:
Lighter
偏移量
当指定方向后(默认为左边), 偏移量计算基于方向
例如:
Left: topMargin 和 rightMargin生效
Right: topMargin 和 leftmargin生效
Top: 当高亮view处于屏幕的右边的时候, teftMargin & bottomMargin生效. 否则, rightMargin & bottomMargin生效
Bottom: 当高亮view处于屏幕的左边的时候, leftMargin 和 topMargin生效. 否则, rightMargin & topMargin生效
Animation
可使用任何动画