2018-05-21—屬性動(dòng)畫實(shí)戰(zhàn):521表白神器心跳實(shí)現(xiàn)

哈嘍幻枉,又和大家見面了,我們之前已經(jīng)將屬性動(dòng)畫學(xué)習(xí)的差不多了跟啤,今天我們就做一個(gè)很簡單很簡單的小功能吧,正好今天是5月21號(hào)唉锌,給各位大兄弟們提供一個(gè)裝B的時(shí)刻隅肥,讓人們知道程序員可是懂浪漫的哈哈!

好了袄简,話不多說腥放,我們來實(shí)現(xiàn)一個(gè)小功能——?jiǎng)討B(tài)桃心彈出。

首先先給大家看一下model的效果:只是效果初步實(shí)現(xiàn)了绿语,具體的優(yōu)化和創(chuàng)新還是要看在座的各位是否有心了哈哈:

這個(gè)初步的Model是有點(diǎn)low哈秃症,不過問題不大,畢竟咱們心意在這里了對(duì)吧吕粹,好了种柑,接下來,我們看一下這個(gè)效果是如何實(shí)現(xiàn)的:



實(shí)現(xiàn)流程:

繪制桃心:首先我們通過心形線方程得到他的參數(shù)方程匹耕,然后通過唯一的參數(shù)r聚请,設(shè)置一個(gè)小范圍的循環(huán)去遍歷r,用二維數(shù)組存儲(chǔ)得到的x稳其,y的值驶赏,最后用Path把數(shù)組存儲(chǔ)的點(diǎn)一次鏈接,這樣繪制桃心就得到了既鞠。

動(dòng)畫:需要兩步:

1.寫一個(gè)桃心的Bean類煤傍,里面存儲(chǔ)兩個(gè)屬性,a和b(具體a和b是什么我們下面再說)

2.寫對(duì)應(yīng)Bean類的估值器嘱蛋。

動(dòng)作:

通過按鍵的點(diǎn)擊事件來觸發(fā)動(dòng)畫的start方法蚯姆。

如此一來椅寺,我們的效果就大體實(shí)現(xiàn)了。

接下來我們看一下詳細(xì)的實(shí)現(xiàn)過程:


1.心形線方程蒋失。

因?yàn)槲覀円嬕粋€(gè)桃心,而我們的畫布canvas是不能直接畫出來桃心的桐玻,所以我們需要用心形線的方程去自己繪制一個(gè)桃心出來篙挽。

這是心形線的方程,

x^2+y^2+a*x=a*sqrt(x^2+y^2) 和 x^2+y^2-a*x=a*sqrt(x^2+y^2)

看著是很惡心對(duì)吧镊靴,不過問題不大铣卡,我們需要的不是這個(gè)方程,我們是需要得到他的參數(shù)方程:

x=a(1+2cost+cos2t)

y=b(2sint+sin2t)

現(xiàn)在我們得到了他的參數(shù)方程偏竟。


2.創(chuàng)建我們所需要的各種類:

1.PeachView類:

這是我們的自定義控件煮落,用View繼承。然后重寫兩個(gè)構(gòu)造方法和onDraw方法踊谋。

我們的PeachView類中需要這幾個(gè)屬性蝉仇。首先第一個(gè)畫筆是必須要的。第二個(gè)參數(shù)就是我們要用來存儲(chǔ)桃心的坐標(biāo)點(diǎn)的一個(gè)數(shù)組殖蚕。第三個(gè)參數(shù)是我們等會(huì)要定義的桃心類轿衔,里面有a和b兩個(gè)參數(shù),至于ab是什么睦疫,看我們的參數(shù)方程害驹。最后一個(gè)參數(shù)就是我們的動(dòng)畫,不多說了蛤育。

然后我們來看這幾個(gè)初始化的方法宛官,首先是兩個(gè)構(gòu)造方法,這個(gè)pass瓦糕。initPaint方法是我們初始化畫筆的方法底洗,setPeach是我們給獲取當(dāng)前桃心的坐標(biāo)的方法搬俊,我們獲取桃心周圍的500個(gè)點(diǎn)坝橡。

然后我們看一下繪制的過程:首先將canvas坐標(biāo)移動(dòng)到中心,然后逆時(shí)針旋轉(zhuǎn)90°(因?yàn)樘倚牡男姆较蚴浅鴛負(fù)半軸寻咒。)

然后我們通過Path連點(diǎn)成線谭胚,把我們剛才拿到的500個(gè)坐標(biāo)一次連城一條線徐块,然后繪制。

jumpPeach方法是開始動(dòng)畫灾而,具體的邏輯應(yīng)該不用多說了胡控,跟我們之前小球動(dòng)畫的邏輯一模一樣。

isRunning方法是判斷當(dāng)前動(dòng)畫是否在進(jìn)行中旁趟。

2.Peach的Bean類:

東西看著就很簡單了昼激。只是一個(gè)構(gòu)造方法和對(duì)應(yīng)的獲取字段值的方法。

3.估值器類:

這個(gè)估值器類也是很簡單的,只是把新獲取到的ab值給放到新的對(duì)象橙困,然后返回瞧掺。


好了,以上是我們的全部代碼凡傅,最后看一下我們Activity的使用流程:

這個(gè)是有點(diǎn)亂哈辟狈,筆者只是用最快最簡單的方法寫出來了,大家可以去優(yōu)化邏輯結(jié)構(gòu)夏跷。我們來看一下它的過程:

首先獲取桃心控件哼转,然后獲取按鈕控件之后,設(shè)置監(jiān)聽器:

首先讓桃心跳動(dòng)起來槽华,然后創(chuàng)建一個(gè)子線程壹蔓,在里面判斷跳動(dòng)是否結(jié)束,如果結(jié)束了就彈出對(duì)話框(其實(shí)這個(gè)子線程用Handler代替更好猫态,佣蓉,更簡便哈哈)


好了,現(xiàn)在為止我們的心跳表白就徹底完成了亲雪。當(dāng)然跟Dream老師的雪花表白特效相比是Low多了-偏螺。+。

/*剛給小仙女看一一下匆光,居然說還行套像,看來那就能過關(guān)哈哈,畢竟心意在那里擺著呢/*

不過就算很Low很直男也無所謂终息,畢竟咱們是為了提升自己技術(shù)嘛對(duì)吧夺巩,所以各位要慎重優(yōu)化,千萬別在女神面前丟了臉哈哈V苷浮柳譬!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市续镇,隨后出現(xiàn)的幾起案子美澳,更是在濱河造成了極大的恐慌,老刑警劉巖摸航,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件制跟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡酱虎,警方通過查閱死者的電腦和手機(jī)雨膨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來读串,“玉大人聊记,你說我怎么就攤上這事撒妈。” “怎么了排监?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵狰右,是天一觀的道長。 經(jīng)常有香客問我舆床,道長挟阻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任峭弟,我火速辦了婚禮,結(jié)果婚禮上脱拼,老公的妹妹穿的比我還像新娘瞒瘸。我一直安慰自己,他們只是感情好熄浓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布情臭。 她就那樣靜靜地躺著,像睡著了一般赌蔑。 火紅的嫁衣襯著肌膚如雪俯在。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天娃惯,我揣著相機(jī)與錄音跷乐,去河邊找鬼。 笑死趾浅,一個(gè)胖子當(dāng)著我的面吹牛愕提,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播皿哨,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼浅侨,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了证膨?” 一聲冷哼從身側(cè)響起如输,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎央勒,沒想到半個(gè)月后不见,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡崔步,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年脖祈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刷晋。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盖高,死狀恐怖慎陵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喻奥,我是刑警寧澤席纽,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站撞蚕,受9級(jí)特大地震影響润梯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜甥厦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一纺铭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刀疙,春花似錦舶赔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疚鲤,卻和暖如春锥累,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背集歇。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工桶略, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诲宇。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓删性,卻偏偏與公主長得像,于是被迫代替她去往敵國和親焕窝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蹬挺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容