天天看點

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