Matrix的set,pre,post调用顺序详解

 更新时间:2017年04月12日 08:53:52   投稿:jingxian  
下面小编就为大家带来一篇Matrix的set,pre,post调用顺序详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Matrix调用一系列set,pre,post方法时,可视为将这些方法插入到一个队列。当然,按照队列中从头至尾的顺序调用执行。

其中pre表示在队头插入一个方法,post表示在队尾插入一个方法。而set表示把当前队列清空,并且总是位于队列的最中间位置。当执行了一次set后:pre方法总是插入到set前部的队列的最前面,post方法总是插入到set后部的队列的最后面。

例一:

Matrix m = new Matrix();
m.setRotate(45); 
m.setTranslate(80, 80);

只有m.setTranslate(80, 80)有效,因为m.setRotate(45);被清除.

例子二:

Matrix m = new Matrix();
m.setTranslate(80, 80);
m.postRotate(45);

先执行m.setTranslate(80, 80);后执行m.postRotate(45);

例子三:

Matrix m = new Matrix();
m.setTranslate(80, 80);
m.preRotate(45);

先执行m.setTranslate(80, 80);后执行m.preRotate(45);

例子四:

Matrix m = new Matrix();
m.preScale(2f,2f);  
m.preTranslate(50f, 20f);  
m.postScale(0.2f, 0.5f);  
m.postTranslate(20f, 20f); 

执行顺序:m.preTranslate(50f, 20f)-->m.preScale(2f,2f)-->m.postScale(0.2f, 0.5f)-->m.postTranslate(20f, 20f)

注意:m.preTranslate(50f, 20f)比m.preScale(2f,2f)先执行,因为它查到了队列的最前端.

例子五:

Matrix m = new Matrix();
m.postTranslate(20, 20);  
m.preScale(0.2f, 0.5f);
m.setScale(0.8f, 0.8f);  
m.postScale(3f, 3f);
m.preTranslate(0.5f, 0.5f);

执行顺序:m.preTranslate(0.5f, 0.5f)-->m.setScale(0.8f, 0.8f)-->m.postScale(3f, 3f)

注意:m.setScale(0.8f, 0.8f)清除了前面的m.postTranslate(20, 20)和m.preScale(0.2f, 0.5f);

以上这篇Matrix的set,pre,post调用顺序详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android 自定义View实现抽屉效果

    Android 自定义View实现抽屉效果

    这篇文章主要介绍了Android 自定义View实现抽屉效果的相关资料,需要的朋友可以参考下
    2017-05-05
  • Flutter悬浮按钮FloatingActionButton使用详解

    Flutter悬浮按钮FloatingActionButton使用详解

    本文主要介绍了Flutter悬浮按钮FloatingActionButton使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • Android横竖屏切换及其对应布局加载问题详解

    Android横竖屏切换及其对应布局加载问题详解

    这篇文章主要为大家详细介绍了Android横竖屏切换及其对应布局加载问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 使用android隐藏api实现亮度调节的方法

    使用android隐藏api实现亮度调节的方法

    使用android隐藏api实现亮度调节的方法,需要的朋友可以参考一下
    2013-05-05
  • Android开发Intent跳转传递list集合实现示例

    Android开发Intent跳转传递list集合实现示例

    这篇文章主要为大家介绍了Android开发Intent跳转传递list集合实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Android PickerView实现三级联动效果

    Android PickerView实现三级联动效果

    这篇文章主要为大家详细介绍了Android PickerView实现三级联动效果,PickerView实现全国地址的选择,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Android实现EditText添加下划线

    Android实现EditText添加下划线

    这篇文章主要为大家详细介绍了Android如何实现给EditText添加下划线,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 详解Android 多级联动控件实现思路讨论

    详解Android 多级联动控件实现思路讨论

    这篇文章主要介绍了详解Android 多级联动控件实现思路讨论,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Android实现简单用户注册案例

    Android实现简单用户注册案例

    这篇文章主要为大家详细介绍了Android实现简单用户注册案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Android实现NFC读取校园卡

    Android实现NFC读取校园卡

    这篇文章主要为大家详细介绍了Android实现NFC读取校园卡,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论