Android Matrix使用总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013597998/article/details/75645508

主要是看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 三个顺序执行。

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

猜你喜欢

转载自blog.csdn.net/u013597998/article/details/75645508
今日推荐