package com.bogdwellers.pinchtozoom.animation; import android.animation.ValueAnimator; import android.graphics.Matrix; import android.widget.ImageView; import com.bogdwellers.pinchtozoom.ImageMatrixCorrector; /** * Created by Martin on 12-10-2016. */ public class FlingAnimatorHandler extends AbsCorrectorAnimatorHandler { public static final String PROPERTY_TRANSLATE_X = "translateX"; public static final String PROPERTY_TRANSLATE_Y = "translateY"; public FlingAnimatorHandler(ImageMatrixCorrector corrector) { super(corrector); } @Override public void onAnimationUpdate(ValueAnimator animation) { ImageMatrixCorrector corrector = getCorrector(); ImageView imageView = corrector.getImageView(); Matrix matrix = imageView.getImageMatrix(); float[] values = getValues(); matrix.getValues(values); float dx = (float) animation.getAnimatedValue(PROPERTY_TRANSLATE_X); dx = corrector.correctAbsolute(Matrix.MTRANS_X, dx) - values[Matrix.MTRANS_X]; float dy = (float) animation.getAnimatedValue(PROPERTY_TRANSLATE_Y); dy = corrector.correctAbsolute(Matrix.MTRANS_Y, dy) - values[Matrix.MTRANS_Y]; matrix.postTranslate(dx, dy); imageView.invalidate(); } }