blob: ab4b91f3409b4df25b473ee4998281215fca4019 [file] [log] [blame]
package com.example.android.xyztouristattractions.ui;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.transition.TransitionValues;
import android.transition.Visibility;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class ScaleTransition extends Visibility {
public ScaleTransition(Context context, AttributeSet attrs) {
super(context, attrs);
}
public Animator createAnimation(View view, float startScale, float endScale, boolean appear) {
view.setScaleX(startScale);
view.setScaleY(startScale);
PropertyValuesHolder holderX = PropertyValuesHolder.ofFloat("scaleX", startScale, endScale);
PropertyValuesHolder holderY = PropertyValuesHolder.ofFloat("scaleY", startScale, endScale);
ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(view, holderX, holderY);
return animator;
}
@Override
public Animator onAppear(ViewGroup sceneRoot, View view, TransitionValues startValues,
TransitionValues endValues) {
return createAnimation(view, 0, 1, true);
}
@Override
public Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues startValues,
TransitionValues endValues) {
return createAnimation(view, 1, 0, false);
}
}