引導(dǎo)頁高亮控件的實(shí)現(xiàn)

背景:
由于最近系統(tǒng)的學(xué)習(xí)了一下自定義view和動(dòng)畫,當(dāng)知識(shí)看完之后不知道自己掌握了多少,而且平時(shí)和朋友聊天說起過高亮控件,所以寫了一個(gè),不足之處希望大家多多指教。
效果圖:


高亮控件.gif

如圖:我點(diǎn)擊屏幕上“第一個(gè)“button,這個(gè)按鈕會(huì)變?yōu)楦吡粒⑶以谠摽丶挠疑辖菚?huì)有一個(gè)文字說明的button;接下來我點(diǎn)擊這個(gè)文字說明的button,會(huì)把高亮控件移動(dòng)到下一個(gè),知道沒有之后,高亮消失,恢復(fù)正常頁面(當(dāng)然什么時(shí)候開啟高亮,什么時(shí)候消失高亮,都是可以通過方法控制的)。
這種效果的實(shí)現(xiàn)肯定需要使用自定義動(dòng)畫來完成。而自定義動(dòng)畫特別有趣的就是Canvas對(duì)于裁剪的時(shí)候,有一個(gè)這樣的方法:

public boolean clipRect(float left, float top, float right, float bottom,
            @NonNull Region.Op op) 

這里特別說一下Region.Op這個(gè)參數(shù)
該參數(shù)的作用就是在剪下多個(gè)區(qū)域下來的情況,當(dāng)這些區(qū)域有重疊的時(shí)候,這個(gè)參數(shù)決定重疊部分該如何處理,多次裁剪之后究竟獲得了哪個(gè)區(qū)域
廢話不多說,一圖勝千言:

屬性介紹.jpg

注:此圖不是我畫的,是從網(wǎng)上找的,如有侵權(quán),請(qǐng)聯(lián)系刪除。

通過這種方式我們就可以在屏幕上摳出我們所需要的高亮的部分。
下面放出我的代碼
具體的實(shí)現(xiàn)我在代碼中注釋的很清楚,大家可以直接看我的代碼,覺得好的希望給一個(gè)star。


項(xiàng)目地址:

https://github.com/fengxiaobing/MyHighLight

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容