Android开发学习-ValueAnimator动画。

71 阅读1分钟

简单的组件位置移动

    fun startAnimator(start: Int, end: Int, time: Long = 100) {
        if (mAnim != null && mAnim!!.isRunning) {
            mAnim!!.cancel()
        }
        mAnim = ValueAnimator.ofInt(start, end)
        mAnim?.setDuration(time)
        mAnim?.setTarget(mBodyView)//需要移动的控件
        mAnim?.addUpdateListener(ValueAnimator.AnimatorUpdateListener { animation ->
            val currentValue = animation.animatedValue as Int
            val params = mBodyView.layoutParams as LayoutParams
            params.topMargin = currentValue
            mBodyView.setLayoutParams(params)//更改他的位置
        })
        mAnim?.start()
    }