Add rotation effect for showing fab

This commit is contained in:
seven332 committed 2016-04-01 20:08:07 +08:00
1 parent 250e1256b9
commit 57a9865d99
3 files changed
+16 -4

No files matched your search

@@ -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
@@ -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();
@@ -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)