ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 16599|回复: 0
上一主题 下一主题
[教程]

android matrix的简单操作

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-28 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
0大家好!今天学习了matrix的简单用法,希望在这里能和大家一起学习和了解一下matrix的相关知识。    在android中, Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在   
Android的API里都提供了set, post和pre三种操作方式,除了translate,其他三种操作都可以指定中心点。   
其中set是直接设置Matrix的值,每次set一次,整个Matrix的数组都会变掉。   
其次post是后乘,当前的矩阵乘以参数给出的矩阵。可以连续多次使用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是前乘,参数给出的矩阵乘以当前的矩阵。所以操作是在当前矩阵的最前面发生的。例如上面的例子,如果用pre的话,可以这样做:   
Matrix m = new Matrix();      
m.setTranslate(100, 100);        
m.preRotate(30);   
旋转、缩放和倾斜都可以围绕一个中心点来进行,如果不指定,默认情况下,是围绕(0,0)点来进行。   
下面我通过我今天做的小例子来进一步理解一下matrix的一些简单操作:   
先看一下运行界面:   
     
   
1.当我们点击缩放按钮的时候,它会按照EditText中输入的比例对imageView进行缩放,主要是通过matrix的postScale方法实现的。效果图如下:   
     
按0.25的比例缩小   
   
     
按1.75的比例放大   
2.当点击旋转按钮的时候,会按照上面标明的角度值进行旋转,通过matrix的postRotate实现的,数值为正的时候是顺时针旋转,为负值时是逆时针旋转。效果图如下:   
     
顺时针旋转30度   
     
逆时针旋转30度   
3.当点击移动按钮的时候,图片进行移动,通过matrix的postTranslate方法实现的,效果如下:   
     
上面的前一个10标明平移的横坐标,第二个10标明的是纵坐标   
当点击还原的时候,图片恢复到最初的状态,主要是通过matrix的reset()方法实现的。   
     
还原后的效果   
上述的代码如下:   
?   
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开发教程
下一篇:《android基础教程合集》
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-7-30 03:00 , Processed in 0.050721 second(s), 15 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表