Merge "Fade out branding image with icon while exit splash screen." into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
26fffc68d9
@@ -36,6 +36,7 @@
|
|||||||
android:layout_marginBottom="60dp"
|
android:layout_marginBottom="60dp"
|
||||||
android:padding="0dp"
|
android:padding="0dp"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
|
android:forceHasOverlappingRendering="false"
|
||||||
android:contentDescription="@string/splash_screen_view_branding_description"/>
|
android:contentDescription="@string/splash_screen_view_branding_description"/>
|
||||||
|
|
||||||
</android.window.SplashScreenView>
|
</android.window.SplashScreenView>
|
||||||
@@ -72,6 +72,7 @@ public class SplashScreenExitAnimation implements Animator.AnimatorListener {
|
|||||||
private final int mAppRevealDuration;
|
private final int mAppRevealDuration;
|
||||||
private final int mAnimationDuration;
|
private final int mAnimationDuration;
|
||||||
private final float mIconStartAlpha;
|
private final float mIconStartAlpha;
|
||||||
|
private final float mBrandingStartAlpha;
|
||||||
private final TransactionPool mTransactionPool;
|
private final TransactionPool mTransactionPool;
|
||||||
|
|
||||||
private ValueAnimator mMainAnimator;
|
private ValueAnimator mMainAnimator;
|
||||||
@@ -94,9 +95,17 @@ public class SplashScreenExitAnimation implements Animator.AnimatorListener {
|
|||||||
|| iconView.getLayoutParams().height == 0) {
|
|| iconView.getLayoutParams().height == 0) {
|
||||||
mIconFadeOutDuration = 0;
|
mIconFadeOutDuration = 0;
|
||||||
mIconStartAlpha = 0;
|
mIconStartAlpha = 0;
|
||||||
|
mBrandingStartAlpha = 0;
|
||||||
mAppRevealDelay = 0;
|
mAppRevealDelay = 0;
|
||||||
} else {
|
} else {
|
||||||
iconView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
iconView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
||||||
|
// The branding view could only exists when the icon is present.
|
||||||
|
final View brandingView = view.getBrandingView();
|
||||||
|
if (brandingView != null) {
|
||||||
|
mBrandingStartAlpha = brandingView.getAlpha();
|
||||||
|
} else {
|
||||||
|
mBrandingStartAlpha = 0;
|
||||||
|
}
|
||||||
mIconFadeOutDuration = context.getResources().getInteger(
|
mIconFadeOutDuration = context.getResources().getInteger(
|
||||||
R.integer.starting_window_app_reveal_icon_fade_out_duration);
|
R.integer.starting_window_app_reveal_icon_fade_out_duration);
|
||||||
mAppRevealDelay = context.getResources().getInteger(
|
mAppRevealDelay = context.getResources().getInteger(
|
||||||
@@ -334,13 +343,21 @@ public class SplashScreenExitAnimation implements Animator.AnimatorListener {
|
|||||||
// ignore
|
// ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onAnimationProgress(float linearProgress) {
|
private void onFadeOutProgress(float linearProgress) {
|
||||||
View iconView = mSplashScreenView.getIconView();
|
final float iconProgress = ICON_INTERPOLATOR.getInterpolation(
|
||||||
|
getProgress(linearProgress, 0 /* delay */, mIconFadeOutDuration));
|
||||||
|
final View iconView = mSplashScreenView.getIconView();
|
||||||
|
final View brandingView = mSplashScreenView.getBrandingView();
|
||||||
if (iconView != null) {
|
if (iconView != null) {
|
||||||
final float iconProgress = ICON_INTERPOLATOR.getInterpolation(
|
|
||||||
getProgress(linearProgress, 0 /* delay */, mIconFadeOutDuration));
|
|
||||||
iconView.setAlpha(mIconStartAlpha * (1 - iconProgress));
|
iconView.setAlpha(mIconStartAlpha * (1 - iconProgress));
|
||||||
}
|
}
|
||||||
|
if (brandingView != null) {
|
||||||
|
brandingView.setAlpha(mBrandingStartAlpha * (1 - iconProgress));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onAnimationProgress(float linearProgress) {
|
||||||
|
onFadeOutProgress(linearProgress);
|
||||||
|
|
||||||
final float revealLinearProgress = getProgress(linearProgress, mAppRevealDelay,
|
final float revealLinearProgress = getProgress(linearProgress, mAppRevealDelay,
|
||||||
mAppRevealDuration);
|
mAppRevealDuration);
|
||||||
|
|||||||
Reference in New Issue
Block a user