Matrix 中的post 和pre 和set 方法的区别 以及Canvas中的方法
2017-02-22 12:04
405 查看
post pre set 其实代表了Matrix 中方法变换的次序,pre是向前加入队列执行,post从后面加入队列执行。
举一些例子:
matrix.preScale(2f,1f); matrix.preTranslate(5f, 0f); matrix.postScale(0.2f, 1f); matrix.postTranslate(0.5f, 0f);
方法执行的顺序为:
translate(5, 0) -> scale(2f, 1f) -> scale(0.2f, 1f) -> translate(0.5f, 0f)
而matrix的set方法则会对先前的pre和post操作进行清除,而后再设置它的值,比如下列的方法调用:
matrix.postTranslate(2f, 0f); matrix.preScale(0.2f, 1f); matrix.setScale(1f, 1f); matrix.postScale(5f, 1f); matrix.preTranslate(0.5f, 0f); 方法执行的顺序为:
translate(0.5f, 0f) -> scale(1f, 1f) -> scale(5f, 1).
Canvas里scale, translate, rotate, concat方法都是pre方法,如果要进行更多的变换可以先从canvas获得matrix, 变换后再设置回canvas.
举一些例子:
matrix.preScale(2f,1f); matrix.preTranslate(5f, 0f); matrix.postScale(0.2f, 1f); matrix.postTranslate(0.5f, 0f);
方法执行的顺序为:
translate(5, 0) -> scale(2f, 1f) -> scale(0.2f, 1f) -> translate(0.5f, 0f)
而matrix的set方法则会对先前的pre和post操作进行清除,而后再设置它的值,比如下列的方法调用:
matrix.postTranslate(2f, 0f); matrix.preScale(0.2f, 1f); matrix.setScale(1f, 1f); matrix.postScale(5f, 1f); matrix.preTranslate(0.5f, 0f); 方法执行的顺序为:
translate(0.5f, 0f) -> scale(1f, 1f) -> scale(5f, 1).
Canvas里scale, translate, rotate, concat方法都是pre方法,如果要进行更多的变换可以先从canvas获得matrix, 变换后再设置回canvas.
相关文章推荐
- Matrix 中的post 和pre 和set 方法的区别 以及Canvas中的方法
- Matrix 中的post 和pre 和set 方法的区别 以及Canvas中的方法
- Android中的Matrix,以及set,pre和post的区别
- Android 图形处理特效 Matrix 的set 、 pre、post方法的区别和使用
- 【Android】图形处理特效 Matrix 的set 、 pre、post方法的区别和使用
- Android中Matrix的pre post set方法理解(转载来源:Linux社区 作者:zjmdp)
- Android中Matrix的set、pre、post的区别
- 详谈Android中Matrix的set、pre、post的区别
- Android中Matrix的set、pre、post的区别
- Matrix的set、pre、post的区别
- Android中Matrix的pre post set方法理解
- Android中Matrix的pre post set方法理解
- Android中Matrix的pre post set方法理解(转载来源:Linux社区 作者:zjmdp)
- Android中Matrix的pre post set方法理解
- Android Matrix的 pre post set方法的理解(zz)
- Android中Matrix的pre post set方法理解
- Android中Matrix的pre post set方法理解
- Ajax访问不断变化的session的值不同步解决方法以及HTTP协议中的GET、POST的区别
- Matrix的set,pre,post调用顺序
- android Matrix.setRotate 和 postRotate的区别