现在的位置: 首页 > 综合 > 正文

Android matrix中postTranslate和preTranslate的理解

2014年11月07日 ⁄ 综合 ⁄ 共 479字 ⁄ 字号 评论关闭

From:http://blog.sina.com.cn/s/blog_620e401d0101ahhr.html

matrix.setScale(interpolatedTime, interpolatedTime);
        matrix.preTranslate(-centerX,
-centerY);

        matrix.postTranslate(centerX, centerY);

经常在中心缩放的应用中看到这段代码.

preTranslate是指在setScale前,平移,postTranslate是指在setScale后平移

注意他们参数是平移的距离,而不是平移目的地的坐标!

由于缩放是以(0,0)为中心的,所以为了把界面的中心与(0,0)对齐,就要preTranslate(-centerX, -centerY),

setScale完成后,调用postTranslate(centerX, centerY),再把图片移回来,这样看到的动画效果就是activity的界面图片从中心不停的缩放了

注:centerX和centerY是界面中心的坐标

抱歉!评论已关闭.