Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit

Permalink
Merge pull request saurabharora90#5 from saurabharora90/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
saurabharora90 committed Jan 12, 2016
2 parents eb4d50c + 6b2a9d4 commit 2b3b291
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 8 deletions.
Binary file modified assets/show_menu.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/snackbar.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha2'
classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'

Expand Down
82 changes: 75 additions & 7 deletions library/src/main/java/com/sa90/materialarcmenu/ArcMenu.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.sa90.materialarcmenu;

import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
Expand All @@ -15,6 +17,10 @@
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;

import java.util.ArrayList;
import java.util.List;

/**
* Created by Saurabh on 14/12/15.
Expand All @@ -32,7 +38,7 @@ public class ArcMenu extends ViewGroup {
ColorStateList mColorStateList;
int mRippleColor;
long mAnimationTime;
float mCurrentRadius, mFinalRadius, mElevation;
float mCurrentRadius, mFinalRadius, mElevation, mMargin;
boolean mIsOpened = false;
double mQuadrantAngle;
MenuSideEnum mMenuSideEnum;
Expand Down Expand Up @@ -246,7 +252,6 @@ public void onClick(View v) {

private void beginOpenAnimation() {
ValueAnimator openMenuAnimator = ValueAnimator.ofFloat(0, mFinalRadius);
openMenuAnimator.setDuration(mAnimationTime);
openMenuAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
Expand All @@ -255,7 +260,25 @@ public void onAnimationUpdate(ValueAnimator animation) {
}
});

openMenuAnimator.addListener(new Animator.AnimatorListener() {
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setInterpolator(new AccelerateInterpolator());

List<Animator> animationCollection = new ArrayList<>(getSubMenuCount() + 1);
animationCollection.add(openMenuAnimator);

for (int i = 0; i < getChildCount(); i++) {
View view = getChildAt(i);
if(view == fabMenu)
continue;

animationCollection.add(ObjectAnimator.ofFloat(view, "scaleX", 0, 1));
animationCollection.add(ObjectAnimator.ofFloat(view, "scaleY", 0, 1));
animationCollection.add(ObjectAnimator.ofFloat(view, "alpha", 0, 1));
}

animatorSet.playTogether(animationCollection);
animatorSet.setDuration(mAnimationTime);
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
toggleVisibilityOfAllChildViews(mIsOpened);
Expand All @@ -278,12 +301,11 @@ public void onAnimationRepeat(Animator animation) {
}
});

openMenuAnimator.start();
animatorSet.start();
}

private void beginCloseAnimation() {
ValueAnimator closeMenuAnimator = ValueAnimator.ofFloat(mFinalRadius, 0);
closeMenuAnimator.setDuration(mAnimationTime);
closeMenuAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
Expand All @@ -292,7 +314,30 @@ public void onAnimationUpdate(ValueAnimator animation) {
}
});

closeMenuAnimator.addListener(new Animator.AnimatorListener() {
final AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setInterpolator(new AccelerateInterpolator());
List<Animator> animationCollection = new ArrayList<>(getSubMenuCount() + 1);
animationCollection.add(closeMenuAnimator);

AnimatorSet rotateAnimatorSet = new AnimatorSet();
rotateAnimatorSet.setInterpolator(new AccelerateInterpolator());
List<Animator> rotateAnimationCollection = new ArrayList<>(getSubMenuCount());

for (int i = 0; i < getChildCount(); i++) {
View view = getChildAt(i);
if(view == fabMenu)
continue;

animationCollection.add(ObjectAnimator.ofFloat(view, "scaleX", 1, 0));
animationCollection.add(ObjectAnimator.ofFloat(view, "scaleY", 1, 0));
animationCollection.add(ObjectAnimator.ofFloat(view, "alpha", 1, 0));

rotateAnimationCollection.add(ObjectAnimator.ofFloat(view, "rotation", 0, 360));
}

animatorSet.playTogether(animationCollection);
animatorSet.setDuration(mAnimationTime);
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {

Expand All @@ -316,7 +361,30 @@ public void onAnimationRepeat(Animator animation) {
}
});

closeMenuAnimator.start();
rotateAnimatorSet.playTogether(rotateAnimationCollection);
rotateAnimatorSet.setDuration(mAnimationTime/3);
rotateAnimatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}

@Override
public void onAnimationEnd(Animator animation) {
animatorSet.start();
}

@Override
public void onAnimationCancel(Animator animation) {

}

@Override
public void onAnimationRepeat(Animator animation) {

}
});

rotateAnimatorSet.start();
}

//ALL API Calls
Expand Down

0 comments on commit 2b3b291

Please sign in to comment.