经常在中心缩放的应用中看到这段代码
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
是界面中心的坐标