比QQ更炫酷的'選項(xiàng)彈窗'動(dòng)畫

源碼下載,求點(diǎn)star

(文章的意義在于分享技術(shù), 所以這里會(huì)重點(diǎn)講下原理和實(shí)現(xiàn)思路, 希望大家看完可以理解實(shí)現(xiàn)思路, 這樣如果項(xiàng)目有需求,可以隨時(shí)增刪功能, 如果出了bug也更易修改)

在某個(gè)版本更新時(shí), UI要求彈出選項(xiàng)框類似于下面的效果:

對(duì), 就是qq這種彈出方式, 而UI給的效果圖實(shí)際是這樣的:

恩, 我們UI的審美認(rèn)為下面加一層模糊效果會(huì)比較好看, 我看了之后認(rèn)為沒什么問題, 就是多了一層模糊效果而已, 但做到后面才發(fā)現(xiàn)有的很大的坑在等我.

首先我做出來的自定義view是希望全局只要調(diào)一個(gè)方法就可以用的, 就像popupwindow那樣, 所以我的思路是初始化整個(gè)布局, 然后以Toast的方式添加到屏幕最前端.

所以第一步: 初始化整個(gè)彈窗布局

第二步: 這里比較重要了, 當(dāng)點(diǎn)擊button, 彈出選項(xiàng)框的時(shí)候, 具體做哪些事情


到這里我們所有操作就都完成了 大家是不是感覺很簡(jiǎn)單, 嘿嘿嘿, 最難的坑其實(shí)是模糊圖片那里, 因?yàn)槲覀兪钱?dāng)用戶點(diǎn)擊彈出按鈕的時(shí)候動(dòng)態(tài)模糊的, 所以效率就很重要, 下面是我對(duì)activity視圖bitmap的處理:

當(dāng)用戶點(diǎn)下按鈕時(shí),我們需要立刻就將模糊后的圖片顯示出來, 下面是我的模糊圖片代碼:

android里面的高斯模糊我大概總結(jié)了一下 基本有三種, 優(yōu)缺點(diǎn)都有, 我用的是系統(tǒng)推薦的, 速度比較快,而且也簡(jiǎn)單, 但只能支持android版本17以上, 但現(xiàn)在手機(jī)用android4.2以下的估計(jì)也很少了.

第二種就是利用glide自定義類繼承BitmapTransformation來實(shí)現(xiàn)在加載圖片時(shí)模糊圖片,但和第一種差不多,也要android版本17以上才能用

第三種就是用java層的代碼, 手動(dòng)算出像素值, 因?yàn)閳D片處理的代碼邏輯都是用java實(shí)現(xiàn)的, 所以效率極差, 不推薦.

最后在說一下那個(gè)彈出蠕動(dòng)的動(dòng)畫, 很簡(jiǎn)單20行代碼就ok了, 我是用屬性動(dòng)畫寫的, 讓彈窗view的寬和高的規(guī)模從0到1, 然后在從1到0.95, 這樣就造成了一個(gè)彈出的動(dòng)態(tài)效果, 很easy吧

大功告成出來的效果就是這樣的啦

源碼下載,求點(diǎn)star?(ps: 如果我分享的技術(shù)對(duì)您有所幫助, 或者解決了您的一些問題, 請(qǐng)點(diǎn)一下我喜歡和github上的star哦!!! github主頁(yè)?我會(huì)經(jīng)常在上面分享我工作中遇到的問題和酷炫的特效實(shí)現(xiàn)的, 關(guān)注一下啦)

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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