以前應用程式啟動頁就跟 Android 一樣各顯神威,大家都用自己的方式達成 PM 們的要求,現在官方也弄了個啟動頁的 API 要來統一天下啦。
implementation 'androidx.core:core-splashscreen:1.0.0'
在MainActivity
的onCreate
執行以下程式碼
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()