您好,登錄后才能下訂單哦!
這篇文章主要介紹“Android怎么利用ScaleTransition實現吹氣球動畫”,在日常操作中,相信很多人在Android怎么利用ScaleTransition實現吹氣球動畫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android怎么利用ScaleTransition實現吹氣球動畫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
對于只需要放大或縮小的場合,可以直接使用 ScaleTransition
來完成,例如我們本篇實現了一個氣球從小到大,感覺像被用力吹起來一樣的動畫效果。
ScaleTransition
的使用非常簡單,只有三個參數,構造方法定義如下。
const ScaleTransition({ Key? key, required Animation<double> scale, this.alignment = Alignment.center, this.child, })
參數對應的說明如下:
scale
:即組件的縮放尺寸,為 Animation 對象,組件實際的尺寸等于組件的實際尺寸乘以該對象的值。。
alignment
:即縮放的起始對齊位置,通過這個參數可以控制組件的縮放方向,比如我們的氣球就是從bottomCenter
開始縮放的,這樣氣球嘴那邊感覺沒有動一樣。
child
:要縮放的子組件。
我們要實現的氣球動畫非常簡單,找一張氣球圖片 。然后使用一個 Animation 對象控制縮放的時間和大小即可。因為氣球后面越來越難吹,因此我們將曲線設置為 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, ); } }
到此,關于“Android怎么利用ScaleTransition實現吹氣球動畫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。