Android撒花效果

2021-08-08 16:04:56 字數 1696 閱讀 4067

我們先來看一下效果是什麼樣的:

1.第一步,我們需要不規則的碎片,這裡我們需要繪製乙個個不規則的view

不規則view採用line進行連線  然後將連起來然後填充就好了,那麼我們的點怎麼確定呢,看圖:

我們所有的點都在紅色區域  那麼我們確定外圍的框和內圍的框就好了 ,乙個外圍,乙個內圍,取相減值就好了,然後用point裝載就可以了

這裡的mpadding就是內圍和外圍的距離 我預設的是10

開始繪製不規則view:

這段**就不講述了,比較簡單

2.那麼好了,我們繪製完了不規則的view,現在接下來是怎麼讓它動起來,實現撒花效果呢:

1.首先我們需要這些不規則的view從上往下動畫下來,我們首先想到的是距離的改變,但是這樣重複繪製效

那麼我們就需要用到valueanimator和typeevaluator。

2.這裡我貼一下貝塞爾動畫的公式 1-3階的

三階公式 b(t) = p0((1-t)(1-t)(1-t))+3p1t((1-t)(1-t))+3p2(t*t)(1-t)+p3(t*t*t)

二階公式 b(t) = (1-t)*(1-t)*p0+2t(1-t)p1+t*t*p2

一階公式 b(t) = p0+(p1-p0)*t=(1-t)p0+t*p1

簡單講述一下,p0是我們開始的點 px-p(最大長度-1) 都是我們的控制點(及p1 p2) ,那麼p3就是我們的結束點,而t是時間,即0-1的過程

4.控制點,我們開始的控制點好得到,即螢幕最上和螢幕最下,那麼中間的兩個呢?這裡我採用的是螢幕中間

分割線第乙個控制點在半屏之上,第二個控制點在半屏之下(這是y軸),那麼x軸就是全屏寬度,不過建議x起

始點是以螢幕寬度一半為基礎,向左移動半屏,然後x的最大寬度為2*螢幕寬度

最終我們得到這樣的:

3.這裡為了效果好看一點,我們加入一些插值器,隨機的:

最後我們完成了乙個花瓣飄落的效果,所以我們需要很多,這裡可以用hanlder和runnable延遲來做

最後來看一下動態的效果:

iOS 建立撒花動畫

一 介紹 二 實現原理 對外置收乙個,然後給對應的每一張建立cadisplaylink定時器,開啟計時器後,在計時器定義的方法中不停的繪製uiimageview,使其從檢視頂部下落到頂部後慢慢改變透明度,直至消失。對外暴露兩個方法即可 1 開始撒花動畫,接收引數,開啟所有的計時器 2 結束撒花動畫,...

完結撒花2020 12 14日記

今天把半澤直樹看完了,雖然昨天晚上就想看完,但是實在是太睏了,只看了一集就睡覺了。睡得很香,一覺睡到了十一點。起來趕忙洗漱,把堆積了一段時間的衣服送洗衣機了,拿了兩個快遞,又拿了外賣,繼續看劇了,嘻嘻。中途支付寶提示我樓下的衣服洗好了,我滿心歡喜的想下去曬結果到樓下一看,洗衣機顯示還有18分鐘才洗完...

軟體工程基礎 完結撒花

這篇部落格是軟體工程基礎 羅傑 任建 的最後一次課程部落格作業。專案 內容這個作業屬於哪個課程 軟體工程基礎 羅傑,任建 這個作業的要求在 作業要求的鏈結 我在這個課程的目標是 提公升對軟體工程的巨集觀和微觀的全面認識,並加以實踐 課程在哪些方面幫助了我 方方面面,下文中將詳細分析與回顧 問題1.個...