Andorid 属性动画 ObjectAnimator 从一个控件位置平移缩放到另一个控件位置

/**
     * 使用属性动画将控件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();
    }

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值