private ObjectAnimator createEnteringImageMatrixAnimator(){
  Matrix initMatrix=MatrixUtils.getImageMatrix(mAnimatedImage);
  initMatrix.getValues(mInitThumbnailMatrixValues);
  final Matrix endMatrix=MatrixUtils.getImageMatrix(mImageTo);
  Log.v(TAG,"createEnteringImageMatrixAnimator, mInitThumbnailMatrixValues " + Arrays.toString(mInitThumbnailMatrixValues));
  Log.v(TAG,"createEnteringImageMatrixAnimator, initMatrix " + initMatrix);
  Log.v(TAG,"createEnteringImageMatrixAnimator,  endMatrix " + endMatrix);
  mAnimatedImage.setScaleType(ImageView.ScaleType.MATRIX);
  return ObjectAnimator.ofObject(mAnimatedImage,MatrixEvaluator.ANIMATED_TRANSFORM_PROPERTY,new MatrixEvaluator(),initMatrix,endMatrix);
}

private ObjectAnimator createEnteringImageMatrixAnimator ( ) { Matrix initMatrix = MatrixUtils . getImageMatrix ( mAnimatedImage ) ; initMatrix . getValues ( mInitThumbnailMatrixValues ) ; final Matrix endMatrix = MatrixUtils . getImageMatrix ( mImageTo ) ; Log . v ( TAG , "createEnteringImageMatrixAnimator, mInitThumbnailMatrixValues " + Arrays . toString ( mInitThumbnailMatrixValues ) ) ; Log . v ( TAG , "createEnteringImageMatrixAnimator, initMatrix " + initMatrix ) ; Log . v ( TAG , "createEnteringImageMatrixAnimator,  endMatrix " + endMatrix ) ; mAnimatedImage . setScaleType ( ImageView . ScaleType . MATRIX ) ; return ObjectAnimator . ofObject ( mAnimatedImage , MatrixEvaluator . ANIMATED_TRANSFORM_PROPERTY , new MatrixEvaluator ( ) , initMatrix , endMatrix ) ; }
this method creates animator that will animate matrix of imageview . it is needed in order to show the effect when scaling of one view is smoothly changed to the scale of the second view . < p > for example : first view can have scaletype : centercrop , and the other one fitcenter . the image inside imageview will smoothly change from one to another
