View旋转中心点

改变View旋转中心点

在对Android的View对象使用setRotation方法时,View默认的锚点是其中心位置

属性动画怎么绕原点旋转?
ObjectAnimator oa = ObjectAnimator.ofFloat(iv, “rotation”, new float[]{0,180});
这个默认是绕中心点的

在Animator中需要通过View.setPivotX和View.setPivotY方法手动给View设置中心点。
imageView.setPivotX(10);
imageView.setPivotY(10);
//是指以ImageView为坐标系(10,10)位置

此处引用鸿洋大神的代码,具体可以参考下:
http://blog.csdn.net/lmj623565791/article/details/51339751

public void pageTransform(View view, float position)
{
    if (position < -1)
    { // [-Infinity,-1)
        // This page is way off-screen to the left.  
        view.setRotation(mMaxRotate * -1);
        view.setPivotX(view.getWidth());
        view.setPivotY(view.getHeight());

    } else if (position <= 1)
    { // [-1,1]  

        if (position < 0)//[0,-1]
        {
            view.setPivotX(view.getWidth() * (0.5f + 0.5f * (-position)));
            view.setPivotY(view.getHeight());
            view.setRotation(mMaxRotate * position);
        } else//[1,0]
        {
            view.setPivotX(view.getWidth() * 0.5f * (1 - position));
            view.setPivotY(view.getHeight());
            view.setRotation(mMaxRotate * position);
        }
    } else
    { // (1,+Infinity]  
        // This page is way off-screen to the right.  
        view.setRotation(mMaxRotate);
        view.setPivotX(view.getWidth() * 0);
        view.setPivotY(view.getHeight());
    }
}

这里写图片描述

第一页开始时滑动时,旋转中心上图原点,即(width/2 , height).

第一页滑动结束时,旋转中心在左边页面的右下角,即(width,height).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值