diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java index d23426705..5a7edc6de 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java @@ -490,7 +490,8 @@ public final class GalleryCommentsScene extends ToolbarScene mFab.setY(fabStartY); mFab.setScaleX(0.0f); mFab.setScaleY(0.0f); - mFab.animate().translationX(0.0f).translationY(0.0f).scaleX(1.0f).scaleY(1.0f) + mFab.setRotation(-45.0f); + mFab.animate().translationX(0.0f).translationY(0.0f).scaleX(1.0f).scaleY(1.0f).rotation(0.0f) .setInterpolator(AnimationUtils.SLOW_FAST_SLOW_INTERPOLATOR) .setDuration(300L).setListener(new SimpleAnimatorListener() { @Override diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index 586da26e8..15ca7de36 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -881,7 +881,8 @@ public final class GalleryListScene extends BaseScene mShowActionFab = true; View fab = mFabLayout.getPrimaryFab(); fab.setVisibility(View.VISIBLE); - fab.animate().scaleX(1.0f).scaleY(1.0f).setListener(null) + fab.setRotation(-45.0f); + fab.animate().scaleX(1.0f).scaleY(1.0f).rotation(0.0f).setListener(null) .setDuration(ANIMATE_TIME).setStartDelay(0L) .setInterpolator(AnimationUtils.FAST_SLOW_INTERPOLATOR).start(); } @@ -916,7 +917,8 @@ public final class GalleryListScene extends BaseScene .setInterpolator(AnimationUtils.SLOW_FAST_INTERPOLATOR).start(); } mSearchFab.setVisibility(View.VISIBLE); - mSearchFab.animate().scaleX(1.0f).scaleY(1.0f).setListener(null) + mSearchFab.setRotation(-45.0f); + mSearchFab.animate().scaleX(1.0f).scaleY(1.0f).rotation(0.0f).setListener(null) .setDuration(ANIMATE_TIME).setStartDelay(delay) .setInterpolator(AnimationUtils.FAST_SLOW_INTERPOLATOR).start(); } else { @@ -950,7 +952,8 @@ public final class GalleryListScene extends BaseScene } View fab = mFabLayout.getPrimaryFab(); fab.setVisibility(View.VISIBLE); - fab.animate().scaleX(1.0f).scaleY(1.0f).setListener(null) + fab.setRotation(-45.0f); + fab.animate().scaleX(1.0f).scaleY(1.0f).rotation(0.0f).setListener(null) .setDuration(ANIMATE_TIME).setStartDelay(delay) .setInterpolator(AnimationUtils.FAST_SLOW_INTERPOLATOR).start(); diff --git a/app/src/main/java/com/hippo/widget/FabLayout.java b/app/src/main/java/com/hippo/widget/FabLayout.java index 3d8bbe3d1..08f1995d3 100644 --- a/app/src/main/java/com/hippo/widget/FabLayout.java +++ b/app/src/main/java/com/hippo/widget/FabLayout.java @@ -256,14 +256,20 @@ public class FabLayout extends ViewGroup implements View.OnClickListener { private void setPrimaryFabAnimation(final View child, final boolean expanded, boolean delay) { + float startRotation; + float endRotation; float startScale; float endScale; Interpolator interpolator; if (expanded) { + startRotation = -45.0f; + endRotation = 0.0f; startScale = 0.0f; endScale = 1.0f; interpolator = AnimationUtils.FAST_SLOW_INTERPOLATOR; } else { + startRotation = 0.0f; + endRotation = 0.0f; startScale = 1.0f; endScale = 0.0f; interpolator = AnimationUtils.SLOW_FAST_INTERPOLATOR; @@ -271,9 +277,11 @@ public class FabLayout extends ViewGroup implements View.OnClickListener { child.setScaleX(startScale); child.setScaleY(startScale); + child.setRotation(startRotation); child.animate() .scaleX(endScale) .scaleY(endScale) + .rotation(endRotation) .setStartDelay(delay ? ANIMATE_TIME : 0L) .setDuration(ANIMATE_TIME) .setInterpolator(interpolator)