Fade out branding image with icon while exit splash screen.
Fade out the branding image with icon if exists. Test: atest SplashscreenTests Test: manual launch test app to see branding image is fadeout. Bug: 207298633 Change-Id: I629ee8548198fe33671586048a999049b958b0e2
This commit is contained in:
committed by
Wei Sheng Shih
parent
a93b661b8c
commit
9af01bb336
@@ -36,6 +36,7 @@
|
||||
android:layout_marginBottom="60dp"
|
||||
android:padding="0dp"
|
||||
android:background="@null"
|
||||
android:forceHasOverlappingRendering="false"
|
||||
android:contentDescription="@string/splash_screen_view_branding_description"/>
|
||||
|
||||
</android.window.SplashScreenView>
|
||||
@@ -72,6 +72,7 @@ public class SplashScreenExitAnimation implements Animator.AnimatorListener {
|
||||
private final int mAppRevealDuration;
|
||||
private final int mAnimationDuration;
|
||||
private final float mIconStartAlpha;
|
||||
private final float mBrandingStartAlpha;
|
||||
private final TransactionPool mTransactionPool;
|
||||
|
||||
private ValueAnimator mMainAnimator;
|
||||
@@ -94,9 +95,17 @@ public class SplashScreenExitAnimation implements Animator.AnimatorListener {
|
||||
|| iconView.getLayoutParams().height == 0) {
|
||||
mIconFadeOutDuration = 0;
|
||||
mIconStartAlpha = 0;
|
||||
mBrandingStartAlpha = 0;
|
||||
mAppRevealDelay = 0;
|
||||
} else {
|
||||
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(
|
||||
R.integer.starting_window_app_reveal_icon_fade_out_duration);
|
||||
mAppRevealDelay = context.getResources().getInteger(
|
||||
@@ -334,13 +343,21 @@ public class SplashScreenExitAnimation implements Animator.AnimatorListener {
|
||||
// ignore
|
||||
}
|
||||
|
||||
private void onAnimationProgress(float linearProgress) {
|
||||
View iconView = mSplashScreenView.getIconView();
|
||||
private void onFadeOutProgress(float linearProgress) {
|
||||
final float iconProgress = ICON_INTERPOLATOR.getInterpolation(
|
||||
getProgress(linearProgress, 0 /* delay */, mIconFadeOutDuration));
|
||||
final View iconView = mSplashScreenView.getIconView();
|
||||
final View brandingView = mSplashScreenView.getBrandingView();
|
||||
if (iconView != null) {
|
||||
final float iconProgress = ICON_INTERPOLATOR.getInterpolation(
|
||||
getProgress(linearProgress, 0 /* delay */, mIconFadeOutDuration));
|
||||
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,
|
||||
mAppRevealDuration);
|
||||
|
||||
Reference in New Issue
Block a user