国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Matrix的set,pre,post調用順序詳解

2019-10-23 18:31:39
字體:
來源:轉載
供稿:網友

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調用順序詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴青县| 万年县| 合川市| 南江县| 佛学| 揭阳市| 曲松县| 五寨县| 乡宁县| 辉县市| 图片| 磐石市| 监利县| 扎兰屯市| 斗六市| 烟台市| 东阳市| 洛隆县| 海伦市| 高青县| 濮阳市| 苍溪县| 永仁县| 辽源市| 宜川县| 柏乡县| 凤冈县| 沁水县| 宜兰市| 句容市| 平顶山市| 陆河县| 兰考县| 确山县| 教育| 邛崃市| 抚松县| 柯坪县| 遂溪县| 成安县| 余干县|