/**
* 1.使用属性动画将控件targetView平移到控件destinationView位置
* 2.targetView大小缩放为destinationView大小
* 3.targetView的透明度由1f到0f
* 该方法要在页面布局完成之后才能使用
*
* @param targetView
* @param destinationView
* @param duration
*/
private fun translateAnim(targetView: View, destinationView: View, duration: Long) {
val animatorSet = AnimatorSet()
//平移动画
val translationX =
ObjectAnimator.ofFloat(targetView, "translationX", 0f, destinationView.x - targetView.x)
val translationY =
ObjectAnimator.ofFloat(targetView, "translationY", 0f, destinationView.y - targetView.y)
//旋转动画
val rotationYAnimator = ObjectAnimator.ofFloat(targetView, "rotation", 0f, 360f)
//缩放动画
val scaleX = ObjectAnimator.ofFloat(
targetView,
"scaleX",
1.0f,
destinationView.width * 1.0f / targetView.width
)
val scaleY = ObjectAnimator.ofFloat(
targetView,
"scaleY",
1.0f,
destinationView.height * 1.0f / targetView.height
)
//透明动画,透明度从1变成0
val alpha = ObjectAnimator.ofFloat(targetView, "alpha", 1f,0f)
//设置控件缩放中心为控件左上角0,0
targetView.pivotX = 0f
targetView.pivotY = 0f
//设置多个ObjectAnimator
animatorSet.playTogether(translationX, translationY, scaleX, scaleY,alpha)
//设置插值器
animatorSet.interpolator = AccelerateInterpolator()
//设置动画时长
animatorSet.duration = duration
//执行动画
animatorSet.start()
}
Android 实现属性动画的方法封装
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 简单的属性动画的实现 现在设计一个动画,让View从x坐标50处移动到x坐标400处 使用ValueAnimato...
- 文章转载至郭神的博客 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们...
- 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果...