使用View的setPivotX(float pivotX)、setPivotY(float pivotY)方法设置轴点

当我们对一个View设置缩放动画时,缩放轴点默认是该View的中心点。如果我们想改变缩放轴点位置,可以通过setPivotX(float pivotX)设置缩放轴点X轴的坐标,通过setPivotY(float pivotY)设置缩放轴点Y轴的坐标。

下面以一个view的缩放动画为例:

findViewById(R.id.view).setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {

                //设置缩放轴点为view的中心点(默认是中心点)
                view.setPivotX(view.getWidth() / 2);
                view.setPivotY(view.getHeight() / 2);

                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        view.animate()
                                .scaleX(2.0f)
                                .scaleY(2.0f)
                                .setInterpolator(new BounceInterpolator())
                                .setDuration(500)
                                .start();
                        return true;
                    case MotionEvent.ACTION_UP:
                    case MotionEvent.ACTION_CANCEL:
                        view.animate()
                                .scaleX(1.0f)
                                .scaleY(1.0f)
                                .setInterpolator(new BounceInterpolator())
                                .setDuration(500)
                                .start();
                        return true;
                }
                return false;
            }
        });

在view执行缩放动画前,我们设置了view的中心点为缩放轴点,缩放效果如下:
在这里插入图片描述

将view的缩放轴点设置为view的右下角:

//设置缩放轴点为view的右下角
view.setPivotX(view.getWidth());
view.setPivotY(view.getHeight());

缩放效果如下:
在这里插入图片描述

将view的缩放轴点设置为view的左上角:

//设置缩放轴点为view的左上角
view.setPivotX(0);
view.setPivotY(0);

缩放效果如下:
在这里插入图片描述

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值