`Matrix.setRotate`和`Matrix.postRotate`有什么区别? (注:这是一个提问标题,不需要回答)

9

我正在尝试使用Android Matrix对象旋转给定的位图。

我想将其旋转并发送到我的服务器,我正在使用Android API8。

我应该使用Matrix.setRotate还是Matrix.postRotate

这两者之间有什么区别?

2个回答

10

setRotate 方法会替换已执行的旋转操作,使用指定的旋转角度进行矩阵变换。而 postRotate 方法会使用当前的矩阵值,并将其使用指定的旋转角度进行变换。

如果您想先进行平移再进行旋转,则可以使用 setTranslatepostRotate 方法。如果您只是想进行旋转,并且从一个新的矩阵开始,则可以使用 setRotatepostRotate 方法,因为您的初始矩阵将是单位矩阵。

我在此提供了 Matrix 对象的API 参考文档,但并不认为它是普遍易懂的解释。


9
API参考中,setRotate设置一个特定的绝对旋转(围绕(0,0)或其他用户提供的点),而postRotate 增加调用它的矩阵的旋转。
关于哪个应该使用的问题,最好通过尝试每个选项并查看哪个选项给您想要的结果来回答。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接