Scale extends Visibility { @Nullable public static Animator createAnimator( @NonNull final View view, @FloatRange(from = MIN, to = MAX) final float startScale, @FloatRange(from = MIN, to = MAX) final float endScale ) { return createAnimator(view, startScale, startScale, endScale, endScale); } Scale();  Scale(@ScaleMode final int mode);  Scale(@NonNull final Context context, @Nullable final AttributeSet attrs); @Nullable static Animator createAnimator(
			@NonNull final View view,
			@FloatRange(from = MIN, to = MAX) final float startScale,
			@FloatRange(from = MIN, to = MAX) final float endScale
	); @Nullable static Animator createAnimator(
			@NonNull final View view,
			@FloatRange(from = MIN, to = MAX) final float startScaleX,
			@FloatRange(from = MIN, to = MAX) final float startScaleY,
			@FloatRange(from = MIN, to = MAX) final float endScaleX,
			@FloatRange(from = MIN, to = MAX) final float endScaleY
	); void setPivotX(@Nullable final Float pivotX); @Nullable Float getPivotX(); void setPivotY(@Nullable final Float pivotY); @Nullable Float getPivotY(); void setPivotXFraction(@FloatRange(from = 0, to = 1) final float fractionX); @FloatRange(from = 0, to = 1) float getPivotXFraction(); void setPivotYFraction(@FloatRange(from = 0, to = 1) final float fractionY); @FloatRange(from = 0, to = 1) float getPivotYFraction(); @Override void captureStartValues(@NonNull final TransitionValues transitionValues); @Override @Nullable Animator onAppear(
			@NonNull final ViewGroup sceneRoot,
			@NonNull final View view,
			@Nullable final TransitionValues startValues,
			@Nullable final TransitionValues endValues
	); @Override @Nullable Animator onDisappear(
			@NonNull final ViewGroup sceneRoot,
			@NonNull final View view,
			@Nullable final TransitionValues startValues,
			@Nullable final TransitionValues endValues
	); static final float MIN; static final float MAX; static final String PROPERTY_SCALE_X; static final String PROPERTY_SCALE_Y; static final TimeInterpolator INTERPOLATOR; }
@SuppressWarnings("ResourceType") @Test public void testCreateAnimator() { final View view = createViewAttachedToWindow(); assertThatAnimatorIsValid(Scale.createAnimator(view, 0.25f, 0.75f), view, 0.25f, 0.25f); assertThatAnimatorIsValid(Scale.createAnimator(view, -0.25f, 0.75f), view, 0.0f, 0.0f); assertThatAnimatorIsValid(Scale.createAnimator(view, 0.25f, -0.75f), view, 0.25f, 0.25f); }
@SuppressWarnings("ResourceType") @Test public void testCreateAnimatorWithSameStartAndEndValues() { final View view = createViewAttachedToWindow(); assertThat(Scale.createAnimator(view, 1.0f, 1.0f), is(nullValue())); assertThat(Scale.createAnimator(view, -0.25f, -0.25f), is(nullValue())); }
@SuppressWarnings("ResourceType") @Test public void testCreateAnimatorForAxesSeparately() { final View view = createViewAttachedToWindow(); assertThatAnimatorIsValid(Scale.createAnimator(view, 0.25f, 0.75f, 0.15f, 0.85f), view, 0.25f, 0.75f); assertThatAnimatorIsValid(Scale.createAnimator(view, 0.25f, 0.75f, 0.15f, 0.75f), view, 0.25f, 0.75f); assertThatAnimatorIsValid(Scale.createAnimator(view, 0.15f, 0.75f, 0.15f, 0.85f), view, 0.15f, 0.75f); assertThatAnimatorIsValid(Scale.createAnimator(view, -0.25f, 0.75f, -0.15f, 1.25f), view, 0.0f, 0.75f); assertThatAnimatorIsValid(Scale.createAnimator(view, 0.25f, -0.75f, 0.0f, -0.75f), view, 0.25f, 0.0f); }
@SuppressWarnings("ResourceType") @Test public void testCreateAnimatorForAxesSeparatelyWithSameStartAndEndValues() { final View view = createViewAttachedToWindow(); assertThat(Scale.createAnimator(view, 0.25f, 0.25f, 0.25f, 0.25f), is(nullValue())); assertThat(Scale.createAnimator(view, -0.35f, -0.35f, -0.35f, -0.35f), is(nullValue())); }
@Test public void testCreateAnimatorWithViewNotAttachedToWindow() { final View view = createViewNotAttachedToWindow(); assertThat(Scale.createAnimator(view, 0.0f, 1.0f), is(nullValue())); }