From 993ba9985a3f6340c4f8039e00b1fa50e8138271 Mon Sep 17 00:00:00 2001 From: daimajia Date: Tue, 24 Jun 2014 22:06:56 +0800 Subject: [PATCH] new member animator Wave --- .../androidanimations/library/YoYo.java | 3 +- .../library/attention/WaveAnimator.java | 44 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 library/src/main/java/com/daimajia/androidanimations/library/attention/WaveAnimator.java diff --git a/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java b/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java index c68188b..4302f0f 100644 --- a/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java +++ b/library/src/main/java/com/daimajia/androidanimations/library/YoYo.java @@ -36,6 +36,7 @@ import com.daimajia.androidanimations.library.attention.StandUpAnimator; import com.daimajia.androidanimations.library.attention.SwingAnimator; import com.daimajia.androidanimations.library.attention.TadaAnimator; +import com.daimajia.androidanimations.library.attention.WaveAnimator; import com.daimajia.androidanimations.library.attention.WobbleAnimator; import com.daimajia.androidanimations.library.bouncing_entrances.BounceInAnimator; import com.daimajia.androidanimations.library.bouncing_entrances.BounceInDownAnimator; @@ -98,7 +99,7 @@ public static enum Techniques { Bounce(BounceAnimator.class), Tada(TadaAnimator.class), StandUp(StandUpAnimator.class), - + Wave(WaveAnimator.class), Hinge(HingeAnimator.class), RollIn(RollInAnimator.class), diff --git a/library/src/main/java/com/daimajia/androidanimations/library/attention/WaveAnimator.java b/library/src/main/java/com/daimajia/androidanimations/library/attention/WaveAnimator.java new file mode 100644 index 0000000..9bf976c --- /dev/null +++ b/library/src/main/java/com/daimajia/androidanimations/library/attention/WaveAnimator.java @@ -0,0 +1,44 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2014 daimajia + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.daimajia.androidanimations.library.attention; + +import android.view.View; + +import com.daimajia.androidanimations.library.BaseViewAnimator; +import com.nineoldandroids.animation.ObjectAnimator; + +public class WaveAnimator extends BaseViewAnimator{ + @Override + protected void prepare(View target) { + float x = (target.getWidth() - target.getPaddingLeft() - target.getPaddingRight())/2 + + target.getPaddingLeft(); + float y = target.getHeight() - target.getPaddingBottom(); + getAnimatorAgent().playTogether( + ObjectAnimator.ofFloat(target, "rotation", 12,-12,3,-3,0), + ObjectAnimator.ofFloat(target, "pivotX", x, x,x,x,x), + ObjectAnimator.ofFloat(target, "pivotY", y, y,y,y,y) + ); + } +}