View以自身中心旋转的代码解惑
2015-11-22 11:05
183 查看
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中心的坐标
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中心的坐标
相关文章推荐
- Java局部变量
- 用C#实现修改网页数据
- Python之旅(三)
- Python 快速教程(Django01):初试天涯
- windows 64位安装Python以及PIL模块详细步骤
- C#中间语言IL初探
- java AES对称加解密
- qt的俄罗斯方块游戏移植到OK6410的修改
- Java实现1900年1月1日到2016年5月7日一共多少天?
- [置顶] python基于dlib的face landmarks
- C++中虚函数与纯虚函数的用法
- Java多态中的注意事项
- Anaconda 如何安装依赖包
- LeetCode题解:Range Sum Query - Immutable(C++版本)
- java中sleep和wait区别
- C#中调用c++的dll具体创建与调用步骤,亲测有效~
- springMVC与shiro整合与自定义验证码用户类型类
- python正则表达式
- XmlJavaTypeAdapter
- HDU 5310 题意 c语言代码