





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