android Matrix.setRotate 和 postRotate的区别

今天在做一个模拟时钟的项目时,需要对指针进行旋转操作。开始使用的是setRotate()方法对指针图片进行旋转操作,之后又需要对指针进行位移,又使用了setTranslate()方法,发现旋转效果没有了,只有平移效果了。自己研究了半天,终于发现了问题的原因所在。

其实Matrix方法中的setRotate()方法会先清除该矩阵,即设为单位矩阵。之后设置旋转操作的,同样,setTranslate()等方法也是一样的。所以是不能叠加各种效果在一起的,因此会出现我上述的问题。

所以,如果是想多种效果同时使用的话,用postRotate(), postTranslate()等类似的矩阵变换方法吧。

你可能感兴趣的:(android Matrix.setRotate 和 postRotate的区别)