關(guān)于蒙層提示傻唾,新手引導(dǎo)層,我見過很多APP的做法是簡(jiǎn)單粗暴直接用一個(gè)完整的圖層蓋著展示的褥实,根本看不到底層遍希,這樣做雖然簡(jiǎn)單等曼,但我認(rèn)為這并不是蒙層提示的效果
還有就是用帶透明背景的提示圖層的, 支付寶的一些提示就是這么干的凿蒜,這樣可以透到底層禁谦,但指向的位置和展示的控件或多或少都跟底部所展示的控件有所出入,當(dāng)提示層消失展示出底層的頁面時(shí)废封,總會(huì)有一個(gè)過渡感州泊,簡(jiǎn)單點(diǎn)說就是所指向的控件不是當(dāng)前所展示的控件,而是一個(gè)替身漂洋,出于用戶體驗(yàn)遥皂,這也是我不采用的原因
我想要的用戶體驗(yàn)類似“無感支付”,就是將控件摳出來氮发,提示指向的既是頁面中真實(shí)展示的控件,這樣蒙層消失后用戶的焦點(diǎn)感覺就會(huì)如德芙般縱享絲滑冗懦。
接下來說一說用法爽冕,功能都在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()徙缴; 就是將所要提示的帶有提示語和箭頭的布局view傳進(jìn)试伙,里面會(huì)根據(jù)所setDirction()設(shè)置的方向和setOffset(); X軸于样、Y軸的偏移量將改布局進(jìn)行排版展示疏叨。
3、setMoreTransparentView()穿剖; 傳其他需要摳圖的控件蚤蔓,需要展示出來的控件里面一并給摳出來
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)控件完全展示出來后再調(diào)用展示提示的方法溯职,因?yàn)槔锩嫘枰褂媚繕?biāo)控件的信息精盅,目標(biāo)控件要展示后才能獲取到寬高、坐標(biāo)等信息谜酒。
項(xiàng)目地址:https://github.com/weioule/PrintDemo