Android開(kāi)發(fā)動(dòng)畫(huà)應(yīng)用,SpringAnimation

Android開(kāi)發(fā)中提供了一種模仿實(shí)際物理效果的動(dòng)畫(huà)方法,被稱(chēng)之為物理動(dòng)畫(huà)。在Android Developer學(xué)習(xí)網(wǎng)站中提供了兩種動(dòng)畫(huà)方法:

? ? 彈簧動(dòng)畫(huà)SpringAnimation

? ? 投擲動(dòng)畫(huà)FlingAnimation

大家可以去Android Developer中看一些理論知識(shí)和方法含義

彈簧動(dòng)畫(huà)主要通過(guò)設(shè)置阻尼比Damping_Ratio和剛度Stiffness兩個(gè)物理屬性的值來(lái)模仿物理動(dòng)畫(huà)效果。通俗講就是點(diǎn)擊一個(gè)視圖或者窗口時(shí),讓視圖實(shí)現(xiàn)類(lèi)似彈簧效果,使動(dòng)畫(huà)不會(huì)顯得太突兀。我們通過(guò)Demo看下效果,可以看到下圖中的ImageView有一個(gè)彈跳的效果,就如同你把ImageView視圖放在彈簧上,然后拉拽這根彈簧時(shí)的效果。


動(dòng)畫(huà)效果

準(zhǔn)備工作:

? ? build.gradle中加入SpringAnimation依賴(lài)

一.? ? dynamic_animation_main_activity.xml主頁(yè)布局

? ? 布局中主要需要視圖ImageView元素和Button按鈕,點(diǎn)擊Button按鈕后視圖ImageView實(shí)現(xiàn)SpringAnimation動(dòng)畫(huà)效果。

? ? 將Button控件放入到一個(gè)LinearLayout中,只是為了方便后期添加其他組件拓展應(yīng)用


dynamic_animation_main_activity代碼

二.? ? dynamicAnimationActivity.java代碼

? ? 1.? ? 通過(guò)findViewById方法關(guān)聯(lián)Button和ImageView視圖

? ? 2.? ? ?-????為Button控件添加點(diǎn)擊監(jiān)聽(tīng)事件

? ? ? ? ? ? -????當(dāng)點(diǎn)擊Button后,實(shí)例化SpringAnimation類(lèi),將spring_imageView(要實(shí)現(xiàn)動(dòng)畫(huà)的視圖)作為參數(shù)

? ? ? ? ? ? -????調(diào)用setupSpringAnimation()方法

? ? ? ? ? ? ? ? - 方法中實(shí)例化SpringForce類(lèi),自定義一些基本屬性Damping_Ratio,Stiffness和finalPosition

? ? ? ? ? ? ? ? - return 自定義的SpringForce類(lèi)

? ? ? ? ? ? -? ? SpringAnimation實(shí)例set自定義的SpringForce

? ? ? ? ? ? -? ? App主進(jìn)程中調(diào)用start()方法開(kāi)始動(dòng)畫(huà)


dynamicAnimationActivity.java代碼

上述Demo基本上是沒(méi)有任何拓展的基本方法

?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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