登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 966|回复: 8

Android 一个调用方便的高亮引导库

[复制链接]

5

主题

7

帖子

97

安币

程序猿

Rank: 2

QQ
发表于 2018-10-31 18:07:09 | 显示全部楼层 |阅读模式

Github地址

支持使用:

  • 安卓原生布局(例如RelativeLayout, FragmentLayout)

  • RecyclerView & ListView & GridView & ScrollView

  • ViewPager

  • Dialog

  • Fragment

功能:

  • 可一次显示单个或多个高亮的view

  • 描绘高亮view时可设置自定义画笔(paint)

  • 自定义高亮view的形状和形状的大小

  • 自定义提示view的显示动画

  • 提示view的相对位置

  • 链式调用,简单使用

效果图

图片描述

Lighter

Lighter

Lighter

Lighter


使用

Gradle

添加到app的build.gradle:

dependencies {
    implementation 'me.samlss:lighter:1.0.1'
}

Maven

<dependency>
  <groupId>me.samlss</groupId>
  <artifactId>lighter</artifactId>
  <version>1.0.1</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

MethodDescription
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

ShapeDescription
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

可使用任何动画

Github地址

20

主题

9223

帖子

2346

安币

Android大神

Rank: 6Rank: 6

发表于 2018-11-1 10:38:56 | 显示全部楼层
每次我都积极回帖的,想要安币~

758

主题

1395

帖子

1873

安币

手工艺人

发表于 2018-11-1 10:44:06 | 显示全部楼层
感觉楼主很用心,辛苦啦~

8

主题

9273

帖子

3549

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2018-11-1 10:51:37 | 显示全部楼层
楼主是好人,回个帖会有安币吗?

28

主题

1万

帖子

1369

安币

Android大神

小白

Rank: 6Rank: 6

发表于 2018-11-1 11:01:31 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

3

主题

9425

帖子

1796

安币

Android大神

Rank: 6Rank: 6

QQ达人

发表于 2018-11-1 11:09:22 | 显示全部楼层
每次我都积极回帖的,想要安币~

0

主题

9199

帖子

2067

安币

Android大神

Rank: 6Rank: 6

发表于 2018-11-1 11:22:45 | 显示全部楼层
感谢大神~
发表于 2018-11-20 15:30:02 | 显示全部楼层
正需要啊,感谢楼主无私分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表