Android 中的 Matrix

时间:2017-09-22 16:06:41   收藏:0   阅读:344

Matrix 是 Android SDK 提供的一个矩阵类,它代表一个 3 X 3 的矩阵

技术分享

Matrix主要可以对图像做4种基本变换

Matrix类中的方法,主要也是和这四个变换相关,只是对计算过程做了封装,作用对象是Bitmap而不是Canvas

技术分享

利用 Matrix 来进行 Translate(平移)、Scale(缩放)、Rotate(旋转)的操作,就是在操作着这个矩阵中元素的数值来达到我们想要的效果。

1. 为什么 Matrix 是一个 3 X 3 的矩阵?

技术分享

技术分享

技术分享

其实 2 X 2 的矩阵是足以表示的,不过是为了方便计算而合并写成了 3 X 3 的格式。

2. Matrix的作用?

3. 示例:

@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
        Matrix matrix = t.getMatrix();
        matrix.preScale(interpolatedTime, interpolatedTime);//缩放
        matrix.preRotate(interpolatedTime * 360);//旋转
        //下面的Translate组合是为了将缩放和旋转的基点移动到整个View的中心,不然系统默认是以View的左上角作为基点
        matrix.preTranslate(-mWidth / 2, -mHeight / 2);
        matrix.postTranslate(mWidth / 2, mHeight / 2);
}

实际上这几行代码用矩阵来表示就相当于如下所示:

技术分享

 

参考:http://www.jianshu.com/p/11e062284491

       http://geek.csdn.net/news/detail/89873

原文:http://www.cnblogs.com/nicoleTeng/p/7575366.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!