ADD week 5
This commit is contained in:
		
							
								
								
									
										101
									
								
								02-Easy5/E5/sources/androidx/transition/Fade.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								02-Easy5/E5/sources/androidx/transition/Fade.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,101 @@ | ||||
| package androidx.transition; | ||||
|  | ||||
| import android.animation.Animator; | ||||
| import android.animation.AnimatorListenerAdapter; | ||||
| import android.animation.ObjectAnimator; | ||||
| import android.content.Context; | ||||
| import android.content.res.TypedArray; | ||||
| import android.content.res.XmlResourceParser; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import androidx.core.content.res.TypedArrayUtils; | ||||
| import androidx.core.view.ViewCompat; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class Fade extends Visibility { | ||||
|     public static final int IN = 1; | ||||
|     private static final String LOG_TAG = "Fade"; | ||||
|     public static final int OUT = 2; | ||||
|     private static final String PROPNAME_TRANSITION_ALPHA = "android:fade:transitionAlpha"; | ||||
|  | ||||
|     public Fade(int i) { | ||||
|         setMode(i); | ||||
|     } | ||||
|  | ||||
|     public Fade() { | ||||
|     } | ||||
|  | ||||
|     public Fade(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, Styleable.FADE); | ||||
|         setMode(TypedArrayUtils.getNamedInt(obtainStyledAttributes, (XmlResourceParser) attributeSet, "fadingMode", 0, getMode())); | ||||
|         obtainStyledAttributes.recycle(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.transition.Visibility, androidx.transition.Transition | ||||
|     public void captureStartValues(TransitionValues transitionValues) { | ||||
|         super.captureStartValues(transitionValues); | ||||
|         transitionValues.values.put(PROPNAME_TRANSITION_ALPHA, Float.valueOf(ViewUtils.getTransitionAlpha(transitionValues.view))); | ||||
|     } | ||||
|  | ||||
|     private Animator createAnimation(final View view, float f, float f2) { | ||||
|         if (f == f2) { | ||||
|             return null; | ||||
|         } | ||||
|         ViewUtils.setTransitionAlpha(view, f); | ||||
|         ObjectAnimator ofFloat = ObjectAnimator.ofFloat(view, ViewUtils.TRANSITION_ALPHA, f2); | ||||
|         ofFloat.addListener(new FadeAnimatorListener(view)); | ||||
|         addListener(new TransitionListenerAdapter() { // from class: androidx.transition.Fade.1 | ||||
|             @Override // androidx.transition.TransitionListenerAdapter, androidx.transition.Transition.TransitionListener | ||||
|             public void onTransitionEnd(Transition transition) { | ||||
|                 ViewUtils.setTransitionAlpha(view, 1.0f); | ||||
|                 ViewUtils.clearNonTransitionAlpha(view); | ||||
|                 transition.removeListener(this); | ||||
|             } | ||||
|         }); | ||||
|         return ofFloat; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.transition.Visibility | ||||
|     public Animator onAppear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) { | ||||
|         float startAlpha = getStartAlpha(transitionValues, 0.0f); | ||||
|         return createAnimation(view, startAlpha != 1.0f ? startAlpha : 0.0f, 1.0f); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.transition.Visibility | ||||
|     public Animator onDisappear(ViewGroup viewGroup, View view, TransitionValues transitionValues, TransitionValues transitionValues2) { | ||||
|         ViewUtils.saveNonTransitionAlpha(view); | ||||
|         return createAnimation(view, getStartAlpha(transitionValues, 1.0f), 0.0f); | ||||
|     } | ||||
|  | ||||
|     private static float getStartAlpha(TransitionValues transitionValues, float f) { | ||||
|         Float f2; | ||||
|         return (transitionValues == null || (f2 = (Float) transitionValues.values.get(PROPNAME_TRANSITION_ALPHA)) == null) ? f : f2.floatValue(); | ||||
|     } | ||||
|  | ||||
|     private static class FadeAnimatorListener extends AnimatorListenerAdapter { | ||||
|         private boolean mLayerTypeChanged = false; | ||||
|         private final View mView; | ||||
|  | ||||
|         FadeAnimatorListener(View view) { | ||||
|             this.mView = view; | ||||
|         } | ||||
|  | ||||
|         @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|         public void onAnimationStart(Animator animator) { | ||||
|             if (ViewCompat.hasOverlappingRendering(this.mView) && this.mView.getLayerType() == 0) { | ||||
|                 this.mLayerTypeChanged = true; | ||||
|                 this.mView.setLayerType(2, null); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|         public void onAnimationEnd(Animator animator) { | ||||
|             ViewUtils.setTransitionAlpha(this.mView, 1.0f); | ||||
|             if (this.mLayerTypeChanged) { | ||||
|                 this.mView.setLayerType(0, null); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user