iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0

開頭

以前應用程式啟動頁就跟 Android 一樣各顯神威,大家都用自己的方式達成 PM 們的要求,現在官方也弄了個啟動頁的 API 要來統一天下啦。

安裝套件

implementation 'androidx.core:core-splashscreen:1.0.0'

如何使用

MainActivityonCreate執行以下程式碼

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
            splashScreen.setOnExitAnimationListener { splashScreenView ->
                val openScreenAnimator = ObjectAnimator.ofFloat(
                    splashScreenView,
                    View.TRANSLATION_Y,
                    0f,
                    -splashScreenView.height.toFloat()
                )
                openScreenAnimator.interpolator = AnticipateInterpolator()
                openScreenAnimator.duration = 200L
                openScreenAnimator.doOnEnd { splashScreenView.remove() }
                openScreenAnimator.start()
            }
        }
    }
}

解說

因為這功能是安卓 12 以上才有,所以系統要我們規定系統版本

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)

在裡面執行啟動頁動畫相關

splashScreen.setOnExitAnimationListener{}

建立啟動頁屬性動畫,可以依照自己需求去寫

val openScreenAnimator = ObjectAnimator.ofFloat(
    splashScreenView,
    View.TRANSLATION_Y,
    0f,
    -splashScreenView.height.toFloat()
)

動畫執行時候,200L 代表 0.2 秒

openScreenAnimator.duration = 200L

啟動頁動畫執行

openScreenAnimator.start()

上一篇
111/10 - 視覺規劃(2/3) - 應用程式圖示和內建圖示
下一篇
111/12 - Kotlin(1/2) - 變數和判斷式
系列文
聽說 HackMD 開放 API 串接,那麼用 Kotlin 寫個筆記 App 吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言