@Override
            public void onClick(View view) {
                if (mCurrentAnimator != null) {
                    mCurrentAnimator.cancel();
                }

                // Animate the four positioning/sizing properties in parallel, back to their
                // original values.
                AnimatorSet set = new AnimatorSet();
                set
                        .play(ObjectAnimator.ofFloat(expandedImageView, View.X, startBounds.left))
                        .with(ObjectAnimator.ofFloat(expandedImageView, View.Y, startBounds.top))
                        .with(ObjectAnimator
                                .ofFloat(expandedImageView, View.SCALE_X, startScaleFinal))
                        .with(ObjectAnimator
                                .ofFloat(expandedImageView, View.SCALE_Y, startScaleFinal));
                set.setDuration(mShortAnimationDuration);
                set.setInterpolator(new DecelerateInterpolator());
                set.addListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        thumbView.setAlpha(1f);
                        expandedImageView.setVisibility(View.GONE);
                        mCurrentAnimator = null;
                    }

                    @Override
                    public void onAnimationCancel(Animator animation) {
                        thumbView.setAlpha(1f);
                        expandedImageView.setVisibility(View.GONE);
                        mCurrentAnimator = null;
                    }
                });
                set.start();
                mCurrentAnimator = set;
            }
"Zooms" in a thumbnail view by assigning the high resolution image to a hidden "zoomed-in"
image view and animating its bounds to fit the entire activity content area. More
specifically:
<p>
<ol>
<li>Assign the high-res image to the hidden "zoomed-in" (expanded) image view.</li>
<li>Calculate the starting and ending bounds for the expanded view.</li>
<li>Animate each of four positioning/sizing properties (X, Y, SCALE_X, SCALE_Y)
simultaneously, from the starting bounds to the ending bounds.</li>
<li>Zoom back out by running the reverse animation on click.</li>
</ol>

@param thumbView  The thumbnail view to zoom in.
@param imageResId The high-resolution version of the image represented by the thumbnail.
app/src/main/java/home/smart/fly/animations/ui/activity/demos/ZoomActivity.java