改变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).