關于蒙層提示,新手引導層,我見過很多APP的做法是簡單粗暴直接用一個完整的圖層蓋著展示的,根本看不到底層,這樣做雖然簡單,但我認為這并不是蒙層提示的效果
還有就是用帶透明背景的提示圖層的, 支付寶的一些提示就是這么干的,這樣可以透到底層,但指向的位置和展示的控件或多或少都跟底部所展示的控件有所出入,當提示層消失展示出底層的頁面時,總會有一個過渡感,簡單點說就是所指向的控件不是當前所展示的控件,而是一個替身,出于用戶體驗,這也是我不采用的原因
我想要的用戶體驗類似“無感支付”,就是將控件摳出來,提示指向的既是頁面中真實展示的控件,這樣蒙層消失后用戶的焦點感覺就會如德芙般縱享絲滑。
接下來說一說用法,功能都在HintView這個類里,主要方法有:
1、setTargetView(); 將所要指向的目標view傳進去,里面會自動對目標view大小與坐標進行測量,然后在蒙層上復制摳出一個完全透明的view,即可完全展示出底層的目標view 。
2、setCustomGuideView(); 就是將所要提示的帶有提示語和箭頭的布局view傳進,里面會根據所setDirction()設置的方向和setOffset(); X軸、Y軸的偏移量將改布局進行排版展示。
3、setMoreTransparentView(); 傳其他需要摳圖的控件,需要展示出來的控件里面一并給摳出來
4、setShape();設置摳圖的形狀,有圓形,矩形,橢圓形
5、setOutsideShape(); 設置繪制目標控件的外圍形狀,一樣可以繪制圓形,矩形,橢圓形
6、setOutsideSpace(); 設置外圍與目標控件的間隔
7、setRadius(); 設置摳出目標控件的圓角,應與目標控件圓角一致
8、setDotted(); 設置圍圍形狀圖的虛線實線
9、setCancelable(); 設置是否點擊屏幕消失
項目里還使用了帶陰影背景的LCardView 和 自定義圓角圖片控件RoundedImageView
在使用時需要注意:當目標控件完全展示出來后再調用展示提示的方法,因為里面需要使用目標控件的信息,目標控件要展示后才能獲取到寬高、坐標等信息。