Skip to content

Commit 61eb43d

Browse files
committed
Merge pull request #5 from ubiratansoares/new_api
A fluent API.
2 parents 319c858 + 3cce7ac commit 61eb43d

File tree

6 files changed

+294
-201
lines changed

6 files changed

+294
-201
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ or Maven
4040
Just like play Yo-yo.
4141

4242
```java
43-
YoYo.play(YoYo.Techniques.Shake,findViewById(R.id.eidtor));
43+
YoYo.with(Techniques.Tada)
44+
.duration(700)
45+
.playOn(findViewById(R.id.edit_area));
4446
```
4547

4648
### Effects

demo/src/main/java/com/daimajia/androidanimations/EffectAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import android.widget.BaseAdapter;
88
import android.widget.TextView;
99

10-
import com.daimajia.androidanimations.library.YoYo;
10+
import com.daimajia.androidanimations.library.Techniques;
1111

1212
public class EffectAdapter extends BaseAdapter {
1313

@@ -19,12 +19,12 @@ public EffectAdapter(Context context){
1919

2020
@Override
2121
public int getCount() {
22-
return YoYo.Techniques.values().length;
22+
return Techniques.values().length;
2323
}
2424

2525
@Override
2626
public Object getItem(int position) {
27-
return YoYo.Techniques.values()[position].getAnimator();
27+
return Techniques.values()[position].getAnimator();
2828
}
2929

3030
@Override

demo/src/main/java/com/daimajia/androidanimations/ExampleActivity.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,39 @@
55
import android.view.View;
66
import android.widget.TextView;
77

8+
import com.daimajia.androidanimations.library.Techniques;
89
import com.daimajia.androidanimations.library.YoYo;
910

10-
public class ExampleActivity extends Activity{
11+
public class ExampleActivity extends Activity {
1112
@Override
1213
protected void onCreate(Bundle savedInstanceState) {
1314
super.onCreate(savedInstanceState);
1415
setContentView(R.layout.example);
15-
final TextView t = (TextView)findViewById(R.id.notice);
16+
17+
final TextView t = (TextView) findViewById(R.id.notice);
1618
t.setText("Please input your Email and Password");
19+
1720
findViewById(R.id.submit).setOnClickListener(new View.OnClickListener() {
1821
@Override
1922
public void onClick(View v) {
20-
YoYo.play(YoYo.Techniques.Tada,findViewById(R.id.edit_area),700);
23+
24+
YoYo.with(Techniques.Tada)
25+
.duration(700)
26+
.playOn(findViewById(R.id.edit_area));
27+
2128
t.setText("Wrong password!");
2229
}
2330
});
2431

25-
final TextView t2 = (TextView)findViewById(R.id.notice2);
32+
final TextView t2 = (TextView) findViewById(R.id.notice2);
2633
t2.setText("Please input your Email and Password");
34+
2735
findViewById(R.id.submit2).setOnClickListener(new View.OnClickListener() {
2836
@Override
2937
public void onClick(View v) {
30-
YoYo.play(YoYo.Techniques.Shake,findViewById(R.id.edit_area2));
38+
39+
YoYo.with(Techniques.Shake).playOn(findViewById(R.id.edit_area2));
40+
3141
t2.setText("Wrong password!");
3242
}
3343
});

library/src/main/java/com/daimajia/androidanimations/library/BaseViewAnimator.java

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,10 @@
3333

3434
public abstract class BaseViewAnimator {
3535

36-
private final int Default_Duration = 1000;
36+
public static final long DURATION = 1000;
37+
3738
private AnimatorSet mAnimatorSet;
38-
private long mDuration = Default_Duration;
39+
private long mDuration = DURATION;
3940

4041
{
4142
mAnimatorSet = new AnimatorSet();
@@ -44,74 +45,75 @@ public abstract class BaseViewAnimator {
4445

4546
protected abstract void prepare(View target);
4647

47-
public void animate(View target){
48+
public void animate(View target) {
4849
reset(target);
4950
prepare(target);
5051
start();
5152
}
5253

5354
/**
5455
* reset the view to default status
56+
*
5557
* @param target
5658
*/
57-
public void reset(View target){
58-
ViewHelper.setAlpha(target,1);
59-
ViewHelper.setScaleX(target,1);
60-
ViewHelper.setScaleY(target,1);
61-
ViewHelper.setTranslationX(target,0);
62-
ViewHelper.setTranslationY(target,0);
63-
ViewHelper.setRotation(target,0);
64-
ViewHelper.setRotationY(target,0);
65-
ViewHelper.setRotationX(target,0);
66-
ViewHelper.setPivotX(target,target.getMeasuredWidth()/2.0f);
67-
ViewHelper.setPivotY(target,target.getMeasuredHeight()/2.0f);
59+
public void reset(View target) {
60+
ViewHelper.setAlpha(target, 1);
61+
ViewHelper.setScaleX(target, 1);
62+
ViewHelper.setScaleY(target, 1);
63+
ViewHelper.setTranslationX(target, 0);
64+
ViewHelper.setTranslationY(target, 0);
65+
ViewHelper.setRotation(target, 0);
66+
ViewHelper.setRotationY(target, 0);
67+
ViewHelper.setRotationX(target, 0);
68+
ViewHelper.setPivotX(target, target.getMeasuredWidth() / 2.0f);
69+
ViewHelper.setPivotY(target, target.getMeasuredHeight() / 2.0f);
6870
}
6971

7072
/**
7173
* start to animate
7274
*/
73-
public void start(){
75+
public void start() {
7476
mAnimatorSet.setDuration(mDuration);
7577
mAnimatorSet.start();
7678
}
7779

78-
public BaseViewAnimator setDuration(long duration){
80+
public BaseViewAnimator setDuration(long duration) {
7981
mDuration = duration;
8082
return this;
8183
}
8284

83-
public BaseViewAnimator setStartDelay(long delay){
85+
public BaseViewAnimator setStartDelay(long delay) {
8486
getAnimatorAgent().setStartDelay(delay);
8587
return this;
8688
}
8789

88-
public long getStartDelay(){
90+
public long getStartDelay() {
8991
return mAnimatorSet.getStartDelay();
9092
}
9193

92-
public BaseViewAnimator addAnimatorListener(AnimatorListener l){
94+
public BaseViewAnimator addAnimatorListener(AnimatorListener l) {
9395
mAnimatorSet.addListener(l);
9496
return this;
9597
}
9698

97-
public void removeAnimatorListener(AnimatorListener l){
99+
public void removeAnimatorListener(AnimatorListener l) {
98100
mAnimatorSet.removeListener(l);
99101
}
100102

101-
public void removeAllListener(){
103+
public void removeAllListener() {
102104
mAnimatorSet.removeAllListeners();
103105
}
104106

105-
public BaseViewAnimator setInterpolator(Interpolator interpolator){
107+
public BaseViewAnimator setInterpolator(Interpolator interpolator) {
106108
mAnimatorSet.setInterpolator(interpolator);
107109
return this;
108110
}
109111

110-
public long getDuration(){
112+
public long getDuration() {
111113
return mAnimatorSet.getDuration();
112114
}
113115

114-
public AnimatorSet getAnimatorAgent(){
116+
public AnimatorSet getAnimatorAgent() {
115117
return mAnimatorSet;
116118
}
117119

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
2+
/*
3+
* The MIT License (MIT)
4+
*
5+
* Copyright (c) 2014 daimajia
6+
*
7+
* Permission is hereby granted, free of charge, to any person obtaining a copy
8+
* of this software and associated documentation files (the "Software"), to deal
9+
* in the Software without restriction, including without limitation the rights
10+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11+
* copies of the Software, and to permit persons to whom the Software is
12+
* furnished to do so, subject to the following conditions:
13+
*
14+
* The above copyright notice and this permission notice shall be included in all
15+
* copies or substantial portions of the Software.
16+
*
17+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23+
* SOFTWARE.
24+
*/
25+
26+
package com.daimajia.androidanimations.library;
27+
28+
import com.daimajia.androidanimations.library.attention.BounceAnimator;
29+
import com.daimajia.androidanimations.library.attention.FlashAnimator;
30+
import com.daimajia.androidanimations.library.attention.PulseAnimator;
31+
import com.daimajia.androidanimations.library.attention.RubberBandAnimator;
32+
import com.daimajia.androidanimations.library.attention.ShakeAnimator;
33+
import com.daimajia.androidanimations.library.attention.StandUpAnimator;
34+
import com.daimajia.androidanimations.library.attention.SwingAnimator;
35+
import com.daimajia.androidanimations.library.attention.TadaAnimator;
36+
import com.daimajia.androidanimations.library.attention.WaveAnimator;
37+
import com.daimajia.androidanimations.library.attention.WobbleAnimator;
38+
import com.daimajia.androidanimations.library.bouncing_entrances.BounceInAnimator;
39+
import com.daimajia.androidanimations.library.bouncing_entrances.BounceInDownAnimator;
40+
import com.daimajia.androidanimations.library.bouncing_entrances.BounceInLeftAnimator;
41+
import com.daimajia.androidanimations.library.bouncing_entrances.BounceInRightAnimator;
42+
import com.daimajia.androidanimations.library.bouncing_entrances.BounceInUpAnimator;
43+
import com.daimajia.androidanimations.library.fading_entrances.FadeInAnimator;
44+
import com.daimajia.androidanimations.library.fading_entrances.FadeInDownAnimator;
45+
import com.daimajia.androidanimations.library.fading_entrances.FadeInLeftAnimator;
46+
import com.daimajia.androidanimations.library.fading_entrances.FadeInRightAnimator;
47+
import com.daimajia.androidanimations.library.fading_entrances.FadeInUpAnimator;
48+
import com.daimajia.androidanimations.library.fading_exits.FadeOutAnimator;
49+
import com.daimajia.androidanimations.library.fading_exits.FadeOutDownAnimator;
50+
import com.daimajia.androidanimations.library.fading_exits.FadeOutLeftAnimator;
51+
import com.daimajia.androidanimations.library.fading_exits.FadeOutRightAnimator;
52+
import com.daimajia.androidanimations.library.fading_exits.FadeOutUpAnimator;
53+
import com.daimajia.androidanimations.library.flippers.FlipInXAnimator;
54+
import com.daimajia.androidanimations.library.flippers.FlipOutXAnimator;
55+
import com.daimajia.androidanimations.library.flippers.FlipOutYAnimator;
56+
import com.daimajia.androidanimations.library.rotating_entrances.RotateInAnimator;
57+
import com.daimajia.androidanimations.library.rotating_entrances.RotateInDownLeftAnimator;
58+
import com.daimajia.androidanimations.library.rotating_entrances.RotateInDownRightAnimator;
59+
import com.daimajia.androidanimations.library.rotating_entrances.RotateInUpLeftAnimator;
60+
import com.daimajia.androidanimations.library.rotating_entrances.RotateInUpRightAnimator;
61+
import com.daimajia.androidanimations.library.rotating_exits.RotateOutAnimator;
62+
import com.daimajia.androidanimations.library.rotating_exits.RotateOutDownLeftAnimator;
63+
import com.daimajia.androidanimations.library.rotating_exits.RotateOutDownRightAnimator;
64+
import com.daimajia.androidanimations.library.rotating_exits.RotateOutUpLeftAnimator;
65+
import com.daimajia.androidanimations.library.rotating_exits.RotateOutUpRightAnimator;
66+
import com.daimajia.androidanimations.library.sliders.SlideInDownAnimator;
67+
import com.daimajia.androidanimations.library.sliders.SlideInLeftAnimator;
68+
import com.daimajia.androidanimations.library.sliders.SlideInRightAnimator;
69+
import com.daimajia.androidanimations.library.sliders.SlideInUpAnimator;
70+
import com.daimajia.androidanimations.library.sliders.SlideOutDownAnimator;
71+
import com.daimajia.androidanimations.library.sliders.SlideOutLeftAnimator;
72+
import com.daimajia.androidanimations.library.sliders.SlideOutRightAnimator;
73+
import com.daimajia.androidanimations.library.sliders.SlideOutUpAnimator;
74+
import com.daimajia.androidanimations.library.specials.HingeAnimator;
75+
import com.daimajia.androidanimations.library.specials.RollInAnimator;
76+
import com.daimajia.androidanimations.library.specials.RollOutAnimator;
77+
import com.daimajia.androidanimations.library.zooming_entrances.ZoomInAnimator;
78+
import com.daimajia.androidanimations.library.zooming_entrances.ZoomInDownAnimator;
79+
import com.daimajia.androidanimations.library.zooming_entrances.ZoomInLeftAnimator;
80+
import com.daimajia.androidanimations.library.zooming_entrances.ZoomInRightAnimator;
81+
import com.daimajia.androidanimations.library.zooming_entrances.ZoomInUpAnimator;
82+
import com.daimajia.androidanimations.library.zooming_exits.ZoomOutAnimator;
83+
import com.daimajia.androidanimations.library.zooming_exits.ZoomOutDownAnimator;
84+
import com.daimajia.androidanimations.library.zooming_exits.ZoomOutLeftAnimator;
85+
import com.daimajia.androidanimations.library.zooming_exits.ZoomOutRightAnimator;
86+
import com.daimajia.androidanimations.library.zooming_exits.ZoomOutUpAnimator;
87+
88+
public enum Techniques {
89+
90+
Flash(FlashAnimator.class),
91+
Pulse(PulseAnimator.class),
92+
RubberBand(RubberBandAnimator.class),
93+
Shake(ShakeAnimator.class),
94+
Swing(SwingAnimator.class),
95+
Wobble(WobbleAnimator.class),
96+
Bounce(BounceAnimator.class),
97+
Tada(TadaAnimator.class),
98+
StandUp(StandUpAnimator.class),
99+
Wave(WaveAnimator.class),
100+
101+
Hinge(HingeAnimator.class),
102+
RollIn(RollInAnimator.class),
103+
RollOut(RollOutAnimator.class),
104+
105+
BounceIn(BounceInAnimator.class),
106+
BounceInDown(BounceInDownAnimator.class),
107+
BounceInLeft(BounceInLeftAnimator.class),
108+
BounceInRight(BounceInRightAnimator.class),
109+
BounceInUp(BounceInUpAnimator.class),
110+
111+
FadeIn(FadeInAnimator.class),
112+
FadeInUp(FadeInUpAnimator.class),
113+
FadeInDown(FadeInDownAnimator.class),
114+
FadeInLeft(FadeInLeftAnimator.class),
115+
FadeInRight(FadeInRightAnimator.class),
116+
117+
FadeOut(FadeOutAnimator.class),
118+
FadeOutDown(FadeOutDownAnimator.class),
119+
FadeOutLeft(FadeOutLeftAnimator.class),
120+
FadeOutRight(FadeOutRightAnimator.class),
121+
FadeOutUp(FadeOutUpAnimator.class),
122+
123+
FlipInX(FlipInXAnimator.class),
124+
FlipOutX(FlipOutXAnimator.class),
125+
126+
FlipOutY(FlipOutYAnimator.class),
127+
RotateIn(RotateInAnimator.class),
128+
RotateInDownLeft(RotateInDownLeftAnimator.class),
129+
RotateInDownRight(RotateInDownRightAnimator.class),
130+
RotateInUpLeft(RotateInUpLeftAnimator.class),
131+
RotateInUpRight(RotateInUpRightAnimator.class),
132+
133+
RotateOut(RotateOutAnimator.class),
134+
RotateOutDownLeft(RotateOutDownLeftAnimator.class),
135+
RotateOutDownRight(RotateOutDownRightAnimator.class),
136+
RotateOutUpLeft(RotateOutUpLeftAnimator.class),
137+
RotateOutUpRight(RotateOutUpRightAnimator.class),
138+
139+
SlideInLeft(SlideInLeftAnimator.class),
140+
SlideInRight(SlideInRightAnimator.class),
141+
SlideInUp(SlideInUpAnimator.class),
142+
SlideInDown(SlideInDownAnimator.class),
143+
144+
SlideOutLeft(SlideOutLeftAnimator.class),
145+
SlideOutRight(SlideOutRightAnimator.class),
146+
SlideOutUp(SlideOutUpAnimator.class),
147+
SlideOutDown(SlideOutDownAnimator.class),
148+
149+
ZoomIn(ZoomInAnimator.class),
150+
ZoomInDown(ZoomInDownAnimator.class),
151+
ZoomInLeft(ZoomInLeftAnimator.class),
152+
ZoomInRight(ZoomInRightAnimator.class),
153+
ZoomInUp(ZoomInUpAnimator.class),
154+
155+
ZoomOut(ZoomOutAnimator.class),
156+
ZoomOutDown(ZoomOutDownAnimator.class),
157+
ZoomOutLeft(ZoomOutLeftAnimator.class),
158+
ZoomOutRight(ZoomOutRightAnimator.class),
159+
ZoomOutUp(ZoomOutUpAnimator.class);
160+
161+
private Class animatorClazz;
162+
163+
private Techniques(Class clazz) {
164+
animatorClazz = clazz;
165+
}
166+
167+
public BaseViewAnimator getAnimator() {
168+
try {
169+
return (BaseViewAnimator) animatorClazz.newInstance();
170+
} catch (Exception e) {
171+
throw new Error("Can not init animatorClazz instance");
172+
}
173+
}
174+
}

0 commit comments

Comments
 (0)