Android Matrix類的使用

2021-06-29 15:06:17 字數 1475 閱讀 2155

在android中,對的處理需要使用到matrix類,matrix是乙個3 x 3的矩陣,他對的處理分為四個基本型別:

1、translate————平移變換

2、scale————縮放變換

3、rotate————旋轉變換

4、skew————錯切變換

在android的api裡對於每一種變換都提供了三種操作方式:set(用於設定matrix中的值)、post(後乘,根據矩陣的原理,相當於左乘)、pre(先乘,相當於矩陣中的右乘)。預設時,這四種變換都是圍繞(0,0)點變換的,當然可以自定義圍繞的中心點,通常圍繞中心點。

首先說說平移,在對處理的過程中,最常用的就是對進行平移操作,該方法為settranslate(),平移意味著在x軸和y軸上簡單地移**像。settranslate方法採用兩個浮點數作為引數,表示在每個軸上移動的數量。第乙個引數是影象將在x軸上移動的數量,而第二個引數是影象將在y軸上移動的數量。在x軸上使用正數進行平移將向右移**像,而使用負數將向左移**像。在y軸上使用正數進行平移將向下移**像,而使用負數將向上移**像。

再看縮放,matrix類中另乙個有用的方法是setscale方法。它採用兩個浮點數作為引數,分別表示在每個軸上所產生的縮放量。第乙個引數是x軸的縮放比例,而第二個引數是y軸的縮放比例。如:matrix.setscale(1.5f,1);

比較複雜的就是的旋轉了,內建的方法之一是setrotate方法。它採用乙個浮點數表示旋轉的角度。圍繞預設點(0,0),正數將順時針旋轉影象,而負數將逆時針旋轉影象,其中預設點是影象的左上角,如:

matrix matrix = new matrix();

matrix.setrotate(15);

另外,也可以使用旋轉的角度及圍繞的旋轉點作為引數呼叫setrotate方法。選擇影象的中心點作為旋轉點,如:

matrix.setrotate(15,bmp.getwidth()/2,bmp.getheight()/2);

x座標(或者

y座標)保持不變,而對應的

y座標(或者

x座標)則按比例發生平移,且平移的大小和該點到

x軸(或y軸)的垂直距離成正比。錯切變換,屬於等面積變換,即乙個形狀在錯切變換的前後,其面積是相等的。

對於程式中,乙個特別有用的方法對是setscale和posttranslate,它們允許跨單個軸(或者兩個軸)翻轉影象。如果以乙個負數縮放,那麼會將該影象繪製到座標系統的負值空間。由於(0,0)點位於左上角,使用x軸上的負數會導致向左繪製影象。因此我們需要使用posttranslate方法,將影象向右移動,如:

matrix.setscale(-1, 1);

matrix.posttranslate(bmp.getwidth(),0);

可以在y軸上做同樣的事情,翻轉影象以使其倒置。通過將影象圍繞兩個軸上的中心點旋轉180°,可以實現相同的效果,如

matrix.setscale(1, -1);

matrix.posttranslate(0, bmp.getheight());

Android Matrix類的使用

在android中,對的處理需要使用到matrix類,matrix是乙個3 x 3的矩陣,他對的處理分為四個基本型別 1 translate 平移變換 2 scale 縮放變換 3 rotate 旋轉變換 4 skew 錯切變換 在android的api裡對於每一種變換都提供了三種操作方式 set ...

android Matrix工具的使用

matrix工具類是對圖形進行特效處理。matrix 是乙個矩陣工具類,本身不能對圖形進行變換,可以與其他api來結合使用。獲取matrix物件,可以直接建立,可以從其他封裝了matrix類中獲取,transformation裡面就封裝了matrix物件。呼叫matrix物件的方法可以對圖形影象進行...

Android Matrix幾個方法的使用

matrix matrix new matrix 這是讓有旋轉的效果 第乙個引數是旋轉的度數 第二個和第三個是引數是圍繞哪個點進行旋轉 matrix.setrotate 30,bitmap.getwidth 2,bitmap.getheight 2 這會讓進行平移 第乙個引數是x軸平移的畫素 第二個...