仿炫酷头条小视频拖拽动画(16)

float

 value = (

float

) animation.getAnimatedValue();

setScaleX(startScaleX + value * (endScaleX - startScaleX));

setScaleY(startScaleY + value * (endScaleY - startScaleY));

setTranslationX(startTransitionX + value * (mOriginViewX - startTransitionX) - value * (getWidth() - mOriginViewVisibleWidth) / 

2.0F

);



setTranslationY(startTransitionY - value * (startTransitionY - mOriginViewY) - value * (getHeight() - mOriginViewRealHeight));

由于拖拽时设置的缩放中心点为屏幕底部中点,所以 x 方向的平移需要减去 (getWidth() - mOriginViewVisibleWidth) / 2.0F) ,同理 y 方向的平移也需要减去 getHeight() - mOriginViewRealHeight 。