麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

Android 矩陣ColorMatrix

2019-12-12 05:03:07
字體:
來源:轉載
供稿:網友

中文名:坐標矩陣

高等數學里有介紹,在圖像處理方面,主要是用于平面的縮放、平移、旋轉等操作。

在Android里面,Matrix由9個float值構成,是一個3*3的矩陣。最好記住。如下圖

各個字段的含義:

上面的sinX和cosX,表示旋轉角度的cos值和sin值,注意,旋轉角度是按順時針方向計算的。

translateX和translateY表示x和y的平移量。scale是縮放的比例,1是不變,2是表示縮放1/2,這樣子。

如何使用

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);  

其它一些具體的方法舉例:

1、setTranslate(float ds,float dy):控制Matrix進行平移。
2、setSkew(float kx,float ky,float px,float py):控制Matrix以px、py為軸心進行傾斜。kx、ky為X、Y方向上的傾斜距離。
3、setSkew(float kx,float ky):控制Matrix進行傾斜。kx、ky為X、Y方向上的傾斜距離。
4、setRotate(float degrees):控制Matrix進行旋轉,degrees控制旋轉的角度。
5、setRotate(float degrees,float px,float py):設置以px、py為軸心進行旋轉,degrees控制旋轉的角度。
6、setScale(float sx,float sy):設置Matrix進行縮放,sx、sy控制X、Y方向上的縮放比例。
7、setScale(float sx,float sy,float px,float py):設置Matrix以px、py為軸心進行縮放,sx、sy控制X、Y方向上的縮放比例。

寫在最后:

這里對圖片進行移動,旋轉之類的處理,除了通過Matrix類,還可以通過Animation動畫來實現

他們之間的不同點在于:

1.使用Matrix類的時候,圖片的移動和旋轉,只能在控件上面。這里面控件本身沒有動,控件里面的內容動了。在實際做的時候需要考慮控件本身的大小,因為超出部分不會顯示。

2.使用Animation動畫來實現的時候,動的是控件本身。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美一级电影网站 | 国产精品午夜在线观看 | 一级片免费在线 | 成人一级免费 | 欧美hdfree性xxxx | 91精品国产九九九久久久亚洲 | 久色乳综合思思在线视频 | 国产精品自拍av | 国产宾馆3p国语对白 | 福利在线免费视频 | caoporn国产一区二区 | 日韩毛片免费观看 | 一色视频| 国内精品久久久久久2021浪潮 | 久久久久国产成人免费精品免费 | 天天曰夜夜操 | 国产精品久久久久久久久粉嫩 | 国产精品一区在线免费观看 | 免费毛片视频 | 午夜视频在线观看免费视频 | 曰韩黄色片 | 黄色二区三区 | 日韩av在线播放一区 | 黄色网址进入 | 中国美女一级黄色大片 | 天天色宗合 | 1314成人网| 麻豆视频在线观看免费网站 | 黄色毛片观看 | 2019天天干夜夜操 | 日韩精品中文字幕一区二区 | 亚洲码无人客一区二区三区 | 中国产一级毛片 | 久久网站热最新地址4 | 精品亚洲成a人在线观看 | 沉沦的校花奴性郑依婷c到失禁 | 电影一级毛片 | 男女牲高爱潮免费视频男女 | 国产精品久久久网站 | 逼特逼视频在线观看 | 主人在调教室性调教女仆游戏 |