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中心的坐标

View以自身中心旋转的代码解惑的更多相关文章

  1. C# 使用 GDI+ 实现添加中心旋转(任意角度)的文字

    这篇文章是 GDI+ 总结系列的第三篇,如果对 GDI+ 的基础使用不熟悉的朋友可以先看第一篇文章<C# 使用 GDI+ 画图>. 需求 需求是要实现给图片添加任意角度旋转的文字,文字的旋 ...

  2. [golang]svg图片默认按照左上角旋转,改为按中心旋转,重新计算中心偏移量

    1 前言 svg图片默认按照左上角旋转,改为按中心旋转,重新计算中心偏移量 2 代码 type Point struct { X float64 Y float64 } func GetOffsetX ...

  3. [golang]图片按中心旋转后,新图的左顶点位置的偏移量

    1 前言 图片按中心旋转后,新图的左顶点位置的偏移量 2 代码 func OffsetXYAfterRotationCore(W, H, L, T, Angle float64) (x, y floa ...

  4. 使用CSS3动画属性实现360°无限循环旋转【代码片段】

    使用CSS3的animation动画属性实现360°无限循环旋转. 代码片段: <div id="test"> <img src="/CSS3/img/ ...

  5. 编程算法 - 左旋转字符串 代码(C)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/37689725 左旋转字符串 代码(C) 本文 ...

  6. OpenCV:OpenCV图像旋转的代码

    OpenCV图像旋转的代码 cv::transpose( bfM, bfM ) 前提:使用两个矩阵Mat型进行下标操作是不行的,耗费的时间太长了.直接使用两个指针对拷贝才是王道.不知道和OpenCV比 ...

  7. OpenFramework中视频或者图片进行中心旋转、平移、放大、缩小、矫正(本例以视频为准,只给出主要代码)

    /********** update mesh部分***********/ for(int i=0;i<4;i++) {  mesh[i].clear(); //重要,不加的话,移动视频的四个角 ...

  8. android 围绕中心旋转动画

    本文主要介绍Android中如何使用rotate实现图片不停旋转的效果.Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果 ...

  9. View页面内容的旋转,在某些情况下可替代屏幕旋转使用

    这个是在做小秘书的体重曲线图的时候用到的,横排的时候可以多显示些内容,可是由于很多未知的冲突导至屏幕旋转起来非常麻烦,可用用旋转页面的内容来达到旋转屏幕的效果. 代码如下: //旋转90度 CGAff ...

随机推荐

  1. 玩转html5<canvas>画图

    导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制 ...

  2. 在HTML中怎么去掉a标签(超链接)的下划线?

    <style type="text/css">a:link,a:visited{ text-decoration:none; /*超链接无下划线*/}a:hover{ ...

  3. Eclipse中绑定java源代码

    如何在Eclipse sdk中查看jar源代码如:*.jar  1.点 “window”-> "Preferences" -> "Java" -&g ...

  4. 有理数类 Java

    public class Rational extends Number implements Comparable { private long numerator;// 分子 private lo ...

  5. mysql merge表介绍

    在Mysql数据库中,Mysql Merge表有点类似于视图.下面就让我们来一起了解一下Mysql Merge表都有哪些优点,希望对您能有所帮助. Mysql Merge表的优点: A: 分离静态的和 ...

  6. Mysql笔记【2】-数据表的基本操作

    1.创建数据库表 create table <表名> ( 字段名1 类型 <列级别限制> , 字段名2 类型 <列级别限制> , 字段名3 类型 <列级别限制 ...

  7. 【失败】制作CentOS镜像

    1.在vmware上安装centos虚拟机,安装过程中设置CPU时,点选 虚拟化Intel VT-x~ 和 虚拟化CPU性能计数器,网络使用NAT模式 2.#mkdir /opt/iso,上传镜像(用 ...

  8. 自定义注解与MYSQL

    无聊之作,可以提意见,但别嘲笑啊 package bean; import java.sql.Date; import annotationK.annotation.Column; import an ...

  9. IOS 学习笔记 20150314

    Objective--C 类与对象 1 关键字 @interace 类定义 @end 类结束 @implementation 类实现 : 继承 @public 公用 @private 私有 @prot ...

  10. NOSql之redis的学习

    /** * 这里是我的虚拟机相关的启动命令 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf /usr/local/r ...