寻找post / pre / set Translate(在Matrix对象中)以及如何使用它们的解释

时间:2011-11-19 21:56:42

标签: android matrix bitmap android-canvas

documentation对于使用这些方法时实际发生的事情非常模糊。有人可以解释Matrix实际上如何影响它所设置的位图吗?他们在那里使用了连接这个术语,但是我不清楚这个术语如何应用于坐标数据(之前只在字符串操作方面使用过它)。

1 个答案:

答案 0 :(得分:135)

set-methods将使用新值替换当前Matrix,而忽略之前包含的Matrix。 pre和post方法将在当前Matrix包含的任何内容之前或之后应用新的转换。

在这个例子中,旋转将被忽略,因为我们使用的是set方法,而m只包含一个翻译:

  

Matrix m = new Matrix();

     

m.setRotate(90);

     

m.setTranslate(100,100);

在此示例中,最终矩阵将是一个平移后跟一个旋转:

  

Matrix m = new Matrix();

     

m.setTranslate(100,100);

     

m.postRotate(90);

在最后一个例子中,最终矩阵将是一个旋转,然后是翻译:

  

Matrix m = new Matrix();

     

m.setTranslate(100,100);

     

m.preRotate(90);

在这篇(相当冗长的)帖子中还有更多信息:

http://www.satyakomatineni.com/akc/display?url=displaynoteimpurl&ownerUserId=satya&reportId=2898

希望它有所帮助。