Android利用ScaleTransition實現(xiàn)吹氣球動畫
前言
這是最后一篇介紹如何使用基本動畫組件的文章,我們繼續(xù) Transition
的動畫,本篇來介紹 ScaleTransition
。我們在之前的文章介紹過使用 Animation
和 AnimationController
來實現(xiàn)組件的縮放,那是通過更改圖片的尺寸實現(xiàn)的,具體可以參考:Flutter 實現(xiàn)愛心三連動畫。
而對于只需要放大或縮小的場合,可以直接使用 ScaleTransition
來完成,例如我們本篇實現(xiàn)了一個氣球從小到大,感覺像被用力吹起來一樣的動畫效果。
balloon.gif
ScaleTransition 介紹
ScaleTransition
的使用非常簡單,只有三個參數(shù),構(gòu)造方法定義如下。
const?ScaleTransition({ ??Key??key, ??required?Animation<double>?scale, ??this.alignment?=?Alignment.center, ??this.child, })
參數(shù)對應(yīng)的說明如下:
scale
:即組件的縮放尺寸,為 Animation 對象,組件實際的尺寸等于組件的實際尺寸乘以該對象的值。。alignment
:即縮放的起始對齊位置,通過這個參數(shù)可以控制組件的縮放方向,比如我們的氣球就是從bottomCenter
開始縮放的,這樣氣球嘴那邊感覺沒有動一樣。child
:要縮放的子組件。
應(yīng)用
我們要實現(xiàn)的氣球動畫非常簡單,找一張氣球圖片 (推薦一個找免費 png 圖素材的國外網(wǎng)站:https://www.pngpix.com)。然后使用一個 Animation 對象控制縮放的時間和大小即可。因為氣球后面越來越難吹,因此我們將曲線設(shè)置為 easeOut
(先快后慢),源代碼如下:
class?ScaleTransitionDemo?extends?StatefulWidget?{ ??ScaleTransitionDemo({Key??key})?:?super(key:?key); ??@override ??_ScaleTransitionDemoState?createState()?=>?_ScaleTransitionDemoState(); } class?_ScaleTransitionDemoState?extends?State<ScaleTransitionDemo> ????with?SingleTickerProviderStateMixin?{ ??late?AnimationController?_controller?= ??????AnimationController(duration:?const?Duration(seconds:?10),?vsync:?this) ????????..repeat(); ??//使用自定義曲線動畫過渡效果 ??late?Animation<double>?_animation?= ??????CurvedAnimation(parent:?_controller,?curve:?Curves.easeOut); ??@override ??Widget?build(BuildContext?context)?{ ????return?Scaffold( ??????appBar:?AppBar( ????????title:?Text('ScaleTransition'), ????????brightness:?Brightness.dark, ????????backgroundColor:?Colors.blue, ??????), ??????body:?Center( ????????child:?balloon(), ??????), ????); ??} ??@override ??void?dispose()?{ ????_controller.stop(); ????_controller.dispose(); ????super.dispose(); ??} ??Widget?balloon()?{ ????return?ScaleTransition( ??????alignment:?Alignment.bottomCenter, ??????child:?Image.asset( ????????'images/balloon.png', ??????), ??????scale:?_animation, ????); ??} }
總結(jié)
本篇介紹了使用 ScaleTransition
控制組件尺寸實現(xiàn)類似吹氣球的動畫。ScaleTransition
的實際應(yīng)用有不少,例如點擊圖片查看大圖、縮小轉(zhuǎn)場切換、以及鏡頭從近拉到遠(yuǎn)或從遠(yuǎn)處走過來的那種感覺等等。有興趣的可以自己嘗試一些有趣的動畫 —— 畢竟玩動畫比單純寫界面更有趣一些!
以上就是Android利用ScaleTransition實現(xiàn)吹氣球動畫的詳細(xì)內(nèi)容,更多關(guān)于Android 吹氣球動畫的資料請關(guān)注腳本之家其它相關(guān)文
相關(guān)文章
Android中轉(zhuǎn)場動畫的實現(xiàn)與兼容性處理
大家都知道Android 中的動畫有很多,除了在一個界面上使用幀動畫、屬性動畫將一個或多個 View 進(jìn)行動畫處理以外,還可以用于兩個界面之間過渡、跳轉(zhuǎn)。本文的內(nèi)容包括:Android 5.0+ 的轉(zhuǎn)場動畫和Android 4.X 模擬實現(xiàn) Android 5.0+ 轉(zhuǎn)場效果。有需要的可以參考借鑒。2016-10-10Android RecycleView和線型布局制作聊天布局
大家好,本篇文章主要講的是Android RecycleView和線型布局制作聊天布局,感興趣的同學(xué)趕緊來看一看吧,對你有幫助的話記得收藏一下2022-01-01Android開發(fā)MQTT協(xié)議的模型及通信淺析
這篇文章主要W為大家介紹了Android開發(fā)MQTT協(xié)議的模型及通信淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Android 中按home鍵和跳轉(zhuǎn)到主界面的實例代碼
本文通過實例代碼給大家分享Android 中按home鍵和跳轉(zhuǎn)到主界面的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-04-04Android通過手機拍照或從本地相冊選取圖片設(shè)置頭像
微信、QQ、微博等社交類APP如何更換自己的頭像,這篇文章主要介紹了Android通過手機拍照或從本地相冊選取圖片設(shè)置頭像,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07詳解android特性之CoordinatorLayout用法探析實例
本篇文章主要介紹了android特性之CoordinatorLayout用法探析實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02Android EditText限制輸入字?jǐn)?shù)的方法
這篇文章主要介紹了Android EditText限制輸入字?jǐn)?shù)的方法,涉及Android針對EditText文本與字符串操作相關(guān)技巧,需要的朋友可以參考下2016-01-01