首頁(yè) 收藏 QQ群
 網(wǎng)站導(dǎo)航

ZNDS智能電視網(wǎng) 推薦當(dāng)貝市場(chǎng)

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

軟件下載 | 游戲 | 討論 | 電視計(jì)算器

綜合交流 / 評(píng)測(cè) / 活動(dòng)區(qū)

交流區(qū) | 測(cè)硬件 | 網(wǎng)站活動(dòng) | Z幣中心

新手入門(mén) / 進(jìn)階 / 社區(qū)互助

新手 | 你問(wèn)我答 | 免費(fèi)刷機(jī)救磚 | ROM固件

查看: 14130|回復(fù): 0
上一主題 下一主題
[教程]

android matrix的簡(jiǎn)單操作

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2013-8-28 16:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
0大家好!今天學(xué)習(xí)了matrix的簡(jiǎn)單用法,希望在這里能和大家一起學(xué)習(xí)和了解一下matrix的相關(guān)知識(shí)。    在android中, Matrix的操作,總共分為translate(平移),rotate(旋轉(zhuǎn)),scale(縮放)和skew(傾斜)四種,每一種變換在   
Android的API里都提供了set, post和pre三種操作方式,除了translate,其他三種操作都可以指定中心點(diǎn)。   
其中set是直接設(shè)置Matrix的值,每次set一次,整個(gè)Matrix的數(shù)組都會(huì)變掉。   
其次post是后乘,當(dāng)前的矩陣乘以參數(shù)給出的矩陣??梢赃B續(xù)多次使用post,來(lái)完成所需的整個(gè)變換。例如,要將一個(gè)圖片旋轉(zhuǎn)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ù)給出的矩陣乘以當(dāng)前的矩陣。所以操作是在當(dāng)前矩陣的最前面發(fā)生的。例如上面的例子,如果用pre的話,可以這樣做:   
Matrix m = new Matrix();      
m.setTranslate(100, 100);        
m.preRotate(30);   
旋轉(zhuǎn)、縮放和傾斜都可以圍繞一個(gè)中心點(diǎn)來(lái)進(jìn)行,如果不指定,默認(rèn)情況下,是圍繞(0,0)點(diǎn)來(lái)進(jìn)行。   
下面我通過(guò)我今天做的小例子來(lái)進(jìn)一步理解一下matrix的一些簡(jiǎn)單操作:   
先看一下運(yùn)行界面:   
     
   
1.當(dāng)我們點(diǎn)擊縮放按鈕的時(shí)候,它會(huì)按照EditText中輸入的比例對(duì)imageView進(jìn)行縮放,主要是通過(guò)matrix的postScale方法實(shí)現(xiàn)的。效果圖如下:   
     
按0.25的比例縮小   
   
     
按1.75的比例放大   
2.當(dāng)點(diǎn)擊旋轉(zhuǎn)按鈕的時(shí)候,會(huì)按照上面標(biāo)明的角度值進(jìn)行旋轉(zhuǎn),通過(guò)matrix的postRotate實(shí)現(xiàn)的,數(shù)值為正的時(shí)候是順時(shí)針旋轉(zhuǎn),為負(fù)值時(shí)是逆時(shí)針旋轉(zhuǎn)。效果圖如下:   
     
順時(shí)針旋轉(zhuǎn)30度   
     
逆時(shí)針旋轉(zhuǎn)30度   
3.當(dāng)點(diǎn)擊移動(dòng)按鈕的時(shí)候,圖片進(jìn)行移動(dòng),通過(guò)matrix的postTranslate方法實(shí)現(xiàn)的,效果如下:   
     
上面的前一個(gè)10標(biāo)明平移的橫坐標(biāo),第二個(gè)10標(biāo)明的是縱坐標(biāo)   
當(dāng)點(diǎn)擊還原的時(shí)候,圖片恢復(fù)到最初的狀態(tài),主要是通過(guò)matrix的reset()方法實(shí)現(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開(kāi)發(fā)教程
下一篇:《android基礎(chǔ)教程合集》

本版積分規(guī)則

Archiver|新帖|標(biāo)簽|軟件|Sitemap|ZNDS智能電視網(wǎng) ( 蘇ICP備2023012627號(hào) )

網(wǎng)絡(luò)信息服務(wù)信用承諾書(shū) | 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:蘇B2-20221768 丨 蘇公網(wǎng)安備 32011402011373號(hào)

GMT+8, 2024-11-20 16:50 , Processed in 0.058805 second(s), 17 queries , Redis On.

Powered by Discuz!

監(jiān)督舉報(bào):report#znds.com (請(qǐng)將#替換為@)

© 2007-2024 ZNDS.Com

快速回復(fù) 返回頂部 返回列表