o
Matrix.setScale包含两个函数,分别是:
1、setScale(float sx, float sy)
Set the matrix to scale by sx and sy.
2、setScale(float sx, float sy, float px, float py)
Set the matrix to scale by sx and sy, with a pivot point at (px, py).
如何正确的实现缩放,建议如下操作:
(cx,cy)为触摸的中心点;lasScaleFactor为上次的缩放因子,scaleFactor为本次的缩放因子。
(rdx,rdy)为图片左上角坐标。
1、缩放:mMatrix.setScale(scaleFactor, scaleFactor);
2、平移:mMatrix.postTranslate(cx-scalefactor/lasScaleFactor*(cx-rdx), cy-scalefactor/lasScaleFactor*(cy-rdy));
3、mImageview.setImageMatrix(mMatrix);
这样即可。
为了解决缩放前后以及过程中出现图片移动,可以考虑在TouchDown事件发生后,所有手指抬起之前,主要是发生了多指触摸,单独的平移操作即禁用。
(点击率:1429)