View以自身中心旋转的代码解惑

中心旋转动画详解
本文详细解释了在Android中实现视图中心旋转动画的原理。通过使用Matrix的preTranslate和postTranslate方法,可以使得视图围绕自身的中心点进行旋转,而不会因为旋转而发生位置偏移。文章介绍了如何通过计算视图中心的坐标来调整平移距离,从而达到平滑旋转的效果。

matrix.preTranslate(-centerX, -centerY);

matrix.postTranslate(centerX, centerY);

经常在中心旋转的应用中看到这段代码.

 

preTranslate是指在matrix旋转之前平移,postTranslate是指在matrix旋转之后平移

注意他们参数是平移的距离,而不是平移目的地的坐标!

 

由于旋转是以原点(0,0)为中心的,所以为了把界面的中心移至(0,0)对齐,就要preTranslate(-centerX, -centerY),这样看到的效果就是View以自身为中心点旋转,此时View的中心在原点的位置,等matrix操作完成后,调用postTranslate(centerX, centerY),再把图片移回来,这样看到的动画效果就是View原地以自己为中心不停的旋转了

 

注:centerX和centerY是界面View中心的坐标

 

转载于:https://www.cnblogs.com/krislight1105/p/4985483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值