Motion Layout是ConstraintLayout的子類別,是在ConstraintLayout 2.0 版本新增的。Motion Layout 可以讓我們用xml 的方式宣告動畫。什麼時候需要用MotionLayout呢?當我們需要與UI互動時產生動畫時,就會使用MotionLayout。
CoordinatorLayout是用來協調子View之間動作的一個Layout,能依Layout裡一個View的位置變化,讓其他Layout也跟著移動。在不少的App都可以看到這樣的效果。
這個例子 Head會隨著下方Scrollview 的滑動而隱藏和出現。
真實世界裡,當你用力推動一個物品,這個物品的移動是會因為摩擦力而停止的。Android 就提供了FlignAnimation來達到基於物理反應的一種動畫。就像下面這個動畫,給動畫一個初始速度1500,摩擦力0.5f,最終View的移動會因為摩擦力而停止。
fling.setOnClickListener { val flingAnimation =…
fling.setOnClickListener { val flingAnimation =
Ripple effect 是在Material design,點擊button的預設效果。
也可以自訂Button的漣漪效果
在App要顯示或隱藏 UI時,直接切換顯示的內容,可能會讓使用者覺得畫面突然變化太大。Reveal animation 動畫可提供使用者視覺上的連續性,減緩變化並引起使用者的注意。
步驟:1.點下Fab時,取得Fab的x,y座標,開啟第二頁。2.第二頁從第一頁傳來的Fab座標開啟Reveal 動畫
trimPathEnd/trimPathStart 軌跡動畫
VectorDrawable 加上trimPathStart ,可以做到向下圖這樣,線由起點(0%)縮短至終點(100%)
這是Android animation 30天上手的最後一天,前面幾篇我們都在介紹Android提供的動畫API,最後一篇我們來看一下使用動畫還需要注意哪些事。
不要讓動畫影響效能。製作動畫時不能低於 60 fps,低於60fps就會讓使用者感覺到斷斷續續或停頓,讓使用者覺得體驗差。