/**
* 使用属性动画将控件imageView平移到控件frameLayout
* 位置,imageView大小缩放为frameLayout大小,该方法
* 要在页面布局完成之后才能使用
*
* @param imageView
* @param frameLayout
* @param duration
*/
private void translateScaleAnim(ImageView imageView, FrameLayout frameLayout, long duration) {
AnimatorSet animatorSet = new AnimatorSet();
//平移动画
ObjectAnimator translationX = ObjectAnimator.ofFloat(imageView, "translationX", 0, frameLayout.getX() - imageView.getX());
ObjectAnimator translationY = ObjectAnimator.ofFloat(imageView, "translationY", 0, frameLayout.getY() - imageView.getY());
//缩放动画
ObjectAnimator scaleX = ObjectAnimator.ofFloat(imageView, "scaleX", 1.0f, frameLayout.getWidth() * 1.0f / imageView.getWidth());
ObjectAnimator scaleY = ObjectAnimator.ofFloat(imageView, "scaleY", 1.0f, frameLayout.getHeight() * 1.0f / imageView.getHeight());
//设置控件缩放中心为控件左上角0,0
imageView.setPivotX(0);
imageView.setPivotY(0);
//设置多个ObjectAnimator
animatorSet.playTogether(translationX, translationY, scaleX, scaleY);
//设置插值器
animatorSet.setInterpolator(new AccelerateInterpolator());
//设置动画时长
animatorSet.setDuration(duration);
//执行动画
animatorSet.start();
}
Andorid 属性动画 ObjectAnimator 从一个控件位置平移缩放到另一个控件位置
最新推荐文章于 2024-07-10 03:09:12 发布