Android Matrix使用总结

来源:互联网 发布:linux for qq2016安装 编辑:程序博客网 时间:2024/06/08 05:47

主要是看aige博客,Matrix部分老忘,再看了一遍,现在把重点知识点记录下,怕忘了。

1.matrix.setXXX方法,是会重置matrix的。怎理解呢?

//假如做了以下两个变换,会发现,只有效的是Rotate//原因是,在我们new了一个Matrix对象后,这个Matrix对象中已经就为我们//封装了一组原始数据.而我们的setXXX方法执行的操作是把原本Matrix对象中的数据重置,重新设置新的数据matrix.setTranslate(500, 500);  matrix.setRotate(5);  

2.preXXX和postXXX一个是前乘一个是后乘。它的区别。
其实就是先执行后执行的问题,pre先执行,pos后执行。
举个栗子:

matrix.preScale(0.5f, 1);   matrix.setScale(1, 0.6f);   matrix.postScale(0.7f, 1);   matrix.preTranslate(15, 0); 

那么Matrix的计算过程即为:translate (15, 0) -> scale (1, 0.6f) -> scale (0.7f, 1),我们说过set会重置数据,所以最开始的matrix.preScale(0.5f, 1); 就被setScale(1, 0.6f)干掉了.然后按照pre set pos 三个顺序执行。

就这样,如果你看完有收获给个赞。欢迎指教。

原创粉丝点击