天天看点

Android遮罩层引导页的实现

实现遮罩层引导页可以通过以下几种方式,本文主要记录张洪洋HighLight的实现原理和过程。

思路1:在布局中添加对应的引导控件,在需要提示的时候显示否则就gone。这种方式可以很准确的定位控件的位置,但是扩展性太差,对程序改动太大。

思路2:在代码中通过xml的根布局获取系统创建的FrameLayout,然后添加引导图到这个布局下

思路3:获取要引导的控件的坐标传递给Activity,再Activity根据位置对用户展示引导图。

HightLight:

通过拿到根部的id,判断是不是FramLayout,如果不是就创建一个FramLayout把当前的根布局放到新创建的FramLayout中,如果是FramLayout那就直接再上面添加一层View就可以了。拿到需要高亮显示的控件的id,通过这个控件的坐标和四个角判断这个控件的具体位置,最后通过canvas生成一个遮罩的view,再通过之前记录的控件的坐标再这个view上挖洞。

具体代码分析:

洪洋的项目地址:https://github.com/hongyangAndroid/Highlight