动画的一些常用函数
sceneView.setOnClickListener{//一触碰屏幕就开始动画 sunView.animate().apply { duration = 1000 rotationY(360f)先旋转360° }.withEndAction { sunView.animate().apply { duration = 1000 rotationY(0f)又回到0° }.start() }.start() }
val sunYStart = sunView.top.toFloat() val sunYEnd = skyView.bottom.toFloat() val heightAnimator = ObjectAnimator.ofFloat(sunView, "y", sunYStart, sunYEnd) .setDuration(3000) heightAnimator.interpolator = AccelerateInterpolator()//设置动画的加速效果 val sunsetSkyAnimator = ObjectAnimator.ofInt(skyView, "backgroundColor", blueSkyColor, sunsetSkyColor) .setDuration(3000) sunsetSkyAnimator.setEvaluator(ArgbEvaluator())//设置天空由蓝天到黄昏 val nightSkyAnimator = ObjectAnimator.ofInt(skyView, "backgroundColor", sunsetSkyColor, nightSky) .setDuration(3000) nightSkyAnimator.setEvaluator(ArgbEvaluator())//设置天空由黄昏到黑夜 val animatorSet:AnimatorSet = AnimatorSet() animatorSet.play(heightAnimator).with(sunsetSkyAnimator).before(nightSkyAnimator)//设置一系列动画的执行过程 animatorSet.start()