發表文章

目前顯示的是 11月, 2018的文章

Android Activity 轉場動畫

圖片
Android 設計 Activity 之間的轉場動畫大致有下列三類方法: overridePendingTransition ActivityOptionsCompat Theme Style overridePendingTransition 這是 Android 典型的方法。 首先在 res/anim/ 目錄下建立 xml 檔來自訂動畫 然後分別在 startActivity 下一行以及下一個 Activity 的 finish() 函式中加上 overridePendingTransition 即可呈現兩個 Activities 之間來回的轉場動畫。 第一種方法的好處是直覺、自訂性高、且相容性高;缺點則是要分別在每個 startActivity 和 finish() 加上程式碼,不免覺得繁瑣。當程式碼量大的時候就不容易整理各個 Activity 之間的邏輯。 ActivityOptionsCompat 這是在 Android 5.0 後加入的新方法,也能向下相容舊版本。 用法是先宣告一個 ActivityOptionsCompat,並選擇它內建的方法去設定 xml,然後把它加入在 startActivity 的引數中即可。 至於返回的動畫則是在下一個 Activity 中加入 finishAfterTransition 這行來結束 Activity(相當於先執行動畫再 finish())。 但卻發現直接這樣寫是沒有作用的!! 查了一下網路後,發現似乎是還要設定叫做「共享元素」的東西。這部份比較複雜,因此尚未研究清楚...... 而 ActivityOptionsCompat 還有內建一些符合 Material Design 設計的動畫,如果只需要著重在進入轉場又懶得自訂 xml 的話則可以使用它們做出美觀的動畫。 ActivityOptionsCompat.makeClipRevealAnimation(View source, int startX, int startY, int width, int height) ActivityOptionsCompat.makeScaleUpAnimation(View source, int startX, int startY, int star