Skip to content

Commit

Permalink
Slide Animations
Browse files Browse the repository at this point in the history
  • Loading branch information
onurkagan committed Jul 16, 2019
1 parent 8499c29 commit 885fbd0
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 39 deletions.
35 changes: 0 additions & 35 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions app/src/main/java/com/onurkagan/ksnack/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import android.widget.Button;

import com.onurkagan.ksnack_lib.Animations.Fade;
import com.onurkagan.ksnack_lib.Animations.Slide;
import com.onurkagan.ksnack_lib.KSnack.KSnack;
import com.onurkagan.ksnack_lib.KSnack.KSnackBarEventListener;
import com.onurkagan.ksnack_lib.MinimalKSnack.MinimalKSnack;
Expand Down Expand Up @@ -36,7 +37,7 @@ public void onClick(View v) {
.setStyle(MinimalKSnackStyle.STYLE_SUCCESS)
.setBackgroundColor(R.color.colorGray)
.setBackgrounDrawable(R.drawable.background_minimal_snack)
.setAnimation(Fade.In.getAnimation(), Fade.Out.getAnimation())
.setAnimation(Slide.Down.getAnimation(minimalKSnack.getMinimalSnackView()), Slide.Up.getAnimation(minimalKSnack.getMinimalSnackView()))
.show();

// KSnack
Expand All @@ -59,7 +60,7 @@ public void onClick(View v) {
}
})
.setMessage("Your message.")
.setAnimation(Fade.In.getAnimation(), Fade.Out.getAnimation())
.setAnimation(Slide.Up.getAnimation(kSnack.getSnackView()), Slide.Down.getAnimation(kSnack.getSnackView()))
.show();
}
});
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
package com.onurkagan.ksnack_lib.Animations;

import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;

public class Slide {

private static long DEFAULT_ANIM_TIME = 400;
private static Animation animation;

public static class Up {

// Slide up anim without optional anim time and interpolator.
public static Animation getAnimation(View view){
view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (isMinimalKSnack(view)){
animation = new TranslateAnimation(.0f, .0f, .0f, -(float) view.getMeasuredHeight());
} else {
animation = new TranslateAnimation(.0f, .0f, (float) view.getMeasuredHeight(), 0);
}
animation.setDuration(DEFAULT_ANIM_TIME);
animation.setInterpolator(new AccelerateInterpolator());
return animation;
}

// Slide up anim with optional anim time.
public static Animation getAnimation(View view, int millisecond){
view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (isMinimalKSnack(view)){
animation = new TranslateAnimation(.0f, .0f, .0f, -(float) view.getMeasuredHeight());
} else {
animation = new TranslateAnimation(.0f, .0f, (float) view.getMeasuredHeight(), 0);
}
animation.setDuration(millisecond);
animation.setInterpolator(new AccelerateInterpolator());
return animation;
}

// Slide up anim with optional anim time and interpolator.
public static Animation getAnimation(View view, int millisecond, Interpolator interpolator){
view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (isMinimalKSnack(view)){
animation = new TranslateAnimation(.0f, .0f, .0f, -(float) view.getMeasuredHeight());
} else {
animation = new TranslateAnimation(.0f, .0f, (float) view.getMeasuredHeight(), 0);
}
animation.setDuration(millisecond);
animation.setInterpolator(interpolator);
return animation;
}

}

public static class Down {

// Slide down anim without optional anim time and interpolator.
public static Animation getAnimation(View view){
view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (isMinimalKSnack(view)){
animation = new TranslateAnimation(.0f, .0f, -(float) view.getMeasuredHeight(), .0f);
} else {
animation = new TranslateAnimation(0, 0,.0f, (float) view.getMeasuredHeight());
}
animation.setDuration(DEFAULT_ANIM_TIME);
animation.setInterpolator(new DecelerateInterpolator());
return animation;
}

// Slide down anim with optional anim time.
public static Animation getAnimation(View view, int millisecond){
view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (isMinimalKSnack(view)){
animation = new TranslateAnimation(.0f, .0f, -(float) view.getMeasuredHeight(), .0f);
} else {
animation = new TranslateAnimation(0, 0,.0f, (float) view.getMeasuredHeight());
}
animation.setDuration(millisecond);
animation.setInterpolator(new DecelerateInterpolator());
return animation;
}

// Slide down anim with optional anim time and interpolator.
public static Animation getAnimation(View view, int millisecond, Interpolator interpolator){
view.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (isMinimalKSnack(view)){
animation = new TranslateAnimation(.0f, .0f, -(float) view.getMeasuredHeight(), .0f);
} else {
animation = new TranslateAnimation(0, 0,.0f, (float) view.getMeasuredHeight());
}
animation.setDuration(millisecond);
animation.setInterpolator(interpolator);
return animation;
}

}

public static boolean isMinimalKSnack(View view){
if (view.getResources().getResourceEntryName(view.getId()).equals("minimal_snack_bar_rlv")) return true;
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ private void initializeKSnackBar(Activity activity){
outAnim = Fade.Out.getAnimation();
}

// Get view.
public View getSnackView(){
return rlvHost;
}

// Message.
public KSnack setMessage(@NonNull String message){
// Check null message.
Expand Down Expand Up @@ -153,7 +158,7 @@ public KSnack setListener(KSnackBarEventListener listener){
// Set animation.
public KSnack setAnimation(Animation inAnim, Animation outAnim){
this.inAnim = inAnim;
this.outAnim = outAnim;;
this.outAnim = outAnim;
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ private void initializeMinimalBar(Activity activity){
outAnim = Fade.Out.getAnimation();
}

// Get view.
public View getMinimalSnackView(){
return lnrHost;
}

// Message.
public MinimalKSnack setMessage(@NonNull String message){
// Check null message.
Expand Down

0 comments on commit 885fbd0

Please sign in to comment.