使用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的setPivotX(float pivotX)、setPivotY(float pivotY)方法设置轴点_第1张图片

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

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

缩放效果如下:
使用View的setPivotX(float pivotX)、setPivotY(float pivotY)方法设置轴点_第2张图片

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

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

缩放效果如下:
使用View的setPivotX(float pivotX)、setPivotY(float pivotY)方法设置轴点_第3张图片

你可能感兴趣的:(android)