Android postTranslate和preTranslate的理解

时间:2021-01-08 12:15:04

转自:http://blog.csdn.net/rav009/article/details/7763223


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是界面中心的坐标