matrix的操作,總共分為translate(平移),rotate(旋轉),scale(縮放)和skew(傾斜)四種,每一種變換在
android的api裡都提供了set, post和pre三種操作方式,除了translate,其他三種操作都可以指定中心點。
set是直接設定matrix的值,每次set一次,整個matrix的陣列都會變掉。
post是後乘,當前的矩陣乘以引數給出的矩陣。可以連續多次使用post,來完成所需的整個變換。
// matrix.setrotate(60);// 這是旋轉多少度
// matrix.setrotate(degrees, px, py);//這個方法是以哪個點為中心進行旋轉多少度
// matrix.setskew(kx, ky);//設定傾斜,以x軸傾斜,還是y軸
// 傾斜x和y軸,以(100,100)為中心。
// matrix.postskew(0 .2f, 0 .2f, 100 , 100 );
// matrix.setscale(0.5f, 1);//縮放寬度變為原來的一半,高度不變
matrix.settranslate(bitmap1.getwidth(), 0);
// 這個是移動
matrix
.pretranslate(0
, -bitmap
.getheight
());
matrix
.posttranslate(0
,bitmap
.getheight
());
這兩行**就是起到了這樣的作用。pretranslate方法的作用是在旋轉之間先把向上移動高度的一半的距離,這樣就關於x軸對稱了
,然後再進行旋轉的變換,posttranslate方法是在變換之後再將向下移動高度的一半的距離也即是回到了原來的位置,這樣顯示
出來的結果就是對稱的了。原理也很簡單,旋轉中心還是(0,0),只不過我們移動,這樣進行旋轉變換的時候就會得到對稱的結果了。
Android中Matrix開發彙總
開發中遇到一些涉及到matrix的地方,現在此歸納,便於日後查閱。通過對imageview設定matrix來實現imageview中的單指拖動和兩指縮放 核心方法 imageview.setimagematrix matrix 所以我們的重點在於去操作乙個matrix.該處主要用到的是利用matri...
深入理解 Android 中的 Matrix
在 android 開發中,矩陣是乙個功能強大並且應用廣泛的神器,例如 用它來製作動畫效果 改變大小 給加各類濾鏡等。對於矩陣,android 官方 sdk 為我們提供了乙個強大的類 matrix 還有 colormatrix 是一直困擾著我的問題,雖然大致能夠呼叫相應的 api 但卻一直 get ...
Android的Matrix類簡介
matrix 的處理需要使用到matrix類,matrix是乙個3 x 3的矩陣,他對的處理分為四個 基本型別 1 translate 平移變換 2 scale 縮放變換 3 rotate 旋轉變換 4 skew 錯切變換 操作方式 set 用於設定matrix中的值 pre 先乘,相當於矩陣中的右...