ZNDS智能電視網 推薦當貝市場

TV應用下載 / 資源分享區(qū)

軟件下載 | 游戲 | 討論 | 電視計算器

綜合交流 / 評測 / 活動區(qū)

交流區(qū) | 測硬件 | 網站活動 | Z幣中心

新手入門 / 進階 / 社區(qū)互助

新手 | 你問我答 | 免費刷機救磚 | ROM固件

查看: 14294|回復: 0
上一主題 下一主題
[教程]

android matrix的簡單操作

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2013-8-28 16:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
0大家好!今天學習了matrix的簡單用法,希望在這里能和大家一起學習和了解一下matrix的相關知識。    在android中, Matrix的操作,總共分為translate(平移),rotate(旋轉),scale(縮放)和skew(傾斜)四種,每一種變換在   
Android的API里都提供了set, post和pre三種操作方式,除了translate,其他三種操作都可以指定中心點。   
其中set是直接設置Matrix的值,每次set一次,整個Matrix的數(shù)組都會變掉。   
其次post是后乘,當前的矩陣乘以參數(shù)給出的矩陣??梢赃B續(xù)多次使用post,來完成所需的整個變換。例如,要將一個圖片旋轉30度,然后平移到(100,100)的地方,可以這樣做:   
Matrix m = new Matrix();      
m.postRotate(30);      
m.postTranslate(100, 100);        
Matrix m = new Matrix();        
m.postRotate(30);        
m.postTranslate(100, 100);   
最后 pre是前乘,參數(shù)給出的矩陣乘以當前的矩陣。所以操作是在當前矩陣的最前面發(fā)生的。例如上面的例子,如果用pre的話,可以這樣做:   
Matrix m = new Matrix();      
m.setTranslate(100, 100);        
m.preRotate(30);   
旋轉、縮放和傾斜都可以圍繞一個中心點來進行,如果不指定,默認情況下,是圍繞(0,0)點來進行。   
下面我通過我今天做的小例子來進一步理解一下matrix的一些簡單操作:   
先看一下運行界面:   
     
   
1.當我們點擊縮放按鈕的時候,它會按照EditText中輸入的比例對imageView進行縮放,主要是通過matrix的postScale方法實現(xiàn)的。效果圖如下:   
     
按0.25的比例縮小   
   
     
按1.75的比例放大   
2.當點擊旋轉按鈕的時候,會按照上面標明的角度值進行旋轉,通過matrix的postRotate實現(xiàn)的,數(shù)值為正的時候是順時針旋轉,為負值時是逆時針旋轉。效果圖如下:   
     
順時針旋轉30度   
     
逆時針旋轉30度   
3.當點擊移動按鈕的時候,圖片進行移動,通過matrix的postTranslate方法實現(xiàn)的,效果如下:   
     
上面的前一個10標明平移的橫坐標,第二個10標明的是縱坐標   
當點擊還原的時候,圖片恢復到最初的狀態(tài),主要是通過matrix的reset()方法實現(xiàn)的。   
     
還原后的效果   
上述的代碼如下:   
?   
1   
2   
3   
4   
5   
6   
7   
8   
9   
10   
11   
12   
13   
14   
15   
16   
17   
18   
19   
20   
21   
22   
23   
24   
25   
26   
27   
28   
29   
30   
31   
32   
33   
34   
35   
36   
37   
38   
39   
40   
41   
42   
43   
44   
45   
46   
47   
48   
49   
50   
51   
52   
53   
54   
55   
56   
57   
58   
59   
60   

上一篇:android開發(fā)教程
下一篇:《android基礎教程合集》
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

Archiver|新帖|標簽|軟件|Sitemap|ZNDS智能電視網 ( 蘇ICP備2023012627號 )

網絡信息服務信用承諾書 | 增值電信業(yè)務經營許可證:蘇B2-20221768 丨 蘇公網安備 32011402011373號

GMT+8, 2024-12-22 15:20 , Processed in 0.061310 second(s), 15 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報:report#znds.com (請將#替換為@)

© 2007-2024 ZNDS.Com

快速回復 返回頂部 返回列表