From e654ce3dbd1d55c32ba66dd4208dec22a315aaad Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Wed, 19 Apr 2017 22:03:46 +0100 Subject: [PATCH 01/10] Add animation duration attribute. --- library/build.gradle | 2 +- .../com/wang/avi/AVLoadingIndicatorView.java | 54 +++++++++++-------- .../src/main/java/com/wang/avi/Indicator.java | 52 +++++++++++------- library/src/main/res/values/attrs.xml | 1 + 4 files changed, 67 insertions(+), 42 deletions(-) diff --git a/library/build.gradle b/library/build.gradle index db93c09..72587f3 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -33,4 +33,4 @@ ext { VSC_URL = 'https://github.com/81813780/AVLoadingIndicatorView' } -apply from: 'https://raw.githubusercontent.com/andforce/release-android-lib-to-jcenter/master/bintray.gradle' \ No newline at end of file +//apply from: 'https://raw.githubusercontent.com/andforce/release-android-lib-to-jcenter/master/bintray.gradle' \ No newline at end of file diff --git a/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java b/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java index a5f4abf..4345fe9 100644 --- a/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java +++ b/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java @@ -19,9 +19,9 @@ public class AVLoadingIndicatorView extends View { - private static final String TAG="AVLoadingIndicatorView"; + private static final String TAG = "AVLoadingIndicatorView"; - private static final BallPulseIndicator DEFAULT_INDICATOR=new BallPulseIndicator(); + private static final BallPulseIndicator DEFAULT_INDICATOR = new BallPulseIndicator(); private static final int MIN_SHOW_TIME = 500; // ms private static final int MIN_DELAY = 500; // ms @@ -63,31 +63,32 @@ public void run() { private Indicator mIndicator; private int mIndicatorColor; + private int mAnimationDuration; private boolean mShouldStartAnimationDrawable; public AVLoadingIndicatorView(Context context) { super(context); - init(context, null,0,0); + init(context, null, 0, 0); } public AVLoadingIndicatorView(Context context, AttributeSet attrs) { super(context, attrs); - init(context, attrs,0,R.style.AVLoadingIndicatorView); + init(context, attrs, 0, R.style.AVLoadingIndicatorView); } public AVLoadingIndicatorView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - init(context, attrs,defStyleAttr,R.style.AVLoadingIndicatorView); + init(context, attrs, defStyleAttr, R.style.AVLoadingIndicatorView); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public AVLoadingIndicatorView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - init(context,attrs,defStyleAttr,R.style.AVLoadingIndicatorView); + init(context, attrs, defStyleAttr, R.style.AVLoadingIndicatorView); } - private void init(Context context,AttributeSet attrs,int defStyleAttr, int defStyleRes) { + private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { mMinWidth = 24; mMaxWidth = 48; mMinHeight = 24; @@ -100,10 +101,11 @@ private void init(Context context,AttributeSet attrs,int defStyleAttr, int defSt mMaxWidth = a.getDimensionPixelSize(R.styleable.AVLoadingIndicatorView_maxWidth, mMaxWidth); mMinHeight = a.getDimensionPixelSize(R.styleable.AVLoadingIndicatorView_minHeight, mMinHeight); mMaxHeight = a.getDimensionPixelSize(R.styleable.AVLoadingIndicatorView_maxHeight, mMaxHeight); - String indicatorName=a.getString(R.styleable.AVLoadingIndicatorView_indicatorName); - mIndicatorColor=a.getColor(R.styleable.AVLoadingIndicatorView_indicatorColor, Color.WHITE); + String indicatorName = a.getString(R.styleable.AVLoadingIndicatorView_indicatorName); + mIndicatorColor = a.getColor(R.styleable.AVLoadingIndicatorView_indicatorColor, Color.WHITE); + mAnimationDuration = a.getInt(R.styleable.AVLoadingIndicatorView_animationDuration, 0); setIndicator(indicatorName); - if (mIndicator==null){ + if (mIndicator == null) { setIndicator(DEFAULT_INDICATOR); } a.recycle(); @@ -123,6 +125,7 @@ public void setIndicator(Indicator d) { mIndicator = d; //need to set indicator color again if you didn't specified when you update the indicator . setIndicatorColor(mIndicatorColor); + setAnimDuration(mAnimationDuration); if (d != null) { d.setCallback(this); } @@ -130,6 +133,11 @@ public void setIndicator(Indicator d) { } } + public void setAnimDuration(int duration) { + this.mAnimationDuration = duration; + mIndicator.setDuration(duration); + } + /** * setIndicatorColor(0xFF00FF00) @@ -141,10 +149,11 @@ public void setIndicator(Indicator d) { * setIndicatorColor(0xFF00FF00) * or * setIndicatorColor(getResources().getColor(android.R.color.black)) + * * @param color */ - public void setIndicatorColor(int color){ - this.mIndicatorColor=color; + public void setIndicatorColor(int color) { + this.mIndicatorColor = color; mIndicator.setColor(color); } @@ -155,15 +164,16 @@ public void setIndicatorColor(int color){ * 1. Only class Name,like "SimpleIndicator".(This way would use default package name with * "com.wang.avi.indicators") * 2. Class name with full package,like "com.my.android.indicators.SimpleIndicator". + * * @param indicatorName the class must be extend Indicator . */ - public void setIndicator(String indicatorName){ - if (TextUtils.isEmpty(indicatorName)){ + public void setIndicator(String indicatorName) { + if (TextUtils.isEmpty(indicatorName)) { return; } - StringBuilder drawableClassName=new StringBuilder(); - if (!indicatorName.contains(".")){ - String defaultPackageName=getClass().getPackage().getName(); + StringBuilder drawableClassName = new StringBuilder(); + if (!indicatorName.contains(".")) { + String defaultPackageName = getClass().getPackage().getName(); drawableClassName.append(defaultPackageName) .append(".indicators") .append("."); @@ -174,7 +184,7 @@ public void setIndicator(String indicatorName){ Indicator indicator = (Indicator) drawableClass.newInstance(); setIndicator(indicator); } catch (ClassNotFoundException e) { - Log.e(TAG,"Didn't find your class , check the name again !"); + Log.e(TAG, "Didn't find your class , check the name again !"); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { @@ -182,13 +192,13 @@ public void setIndicator(String indicatorName){ } } - public void smoothToShow(){ - startAnimation(AnimationUtils.loadAnimation(getContext(),android.R.anim.fade_in)); + public void smoothToShow() { + startAnimation(AnimationUtils.loadAnimation(getContext(), android.R.anim.fade_in)); setVisibility(VISIBLE); } - public void smoothToHide(){ - startAnimation(AnimationUtils.loadAnimation(getContext(),android.R.anim.fade_out)); + public void smoothToHide() { + startAnimation(AnimationUtils.loadAnimation(getContext(), android.R.anim.fade_out)); setVisibility(GONE); } diff --git a/library/src/main/java/com/wang/avi/Indicator.java b/library/src/main/java/com/wang/avi/Indicator.java index dfac444..395afa8 100644 --- a/library/src/main/java/com/wang/avi/Indicator.java +++ b/library/src/main/java/com/wang/avi/Indicator.java @@ -19,7 +19,7 @@ public abstract class Indicator extends Drawable implements Animatable { - private HashMap mUpdateListeners=new HashMap<>(); + private HashMap mUpdateListeners = new HashMap<>(); private ArrayList mAnimators; private int alpha = 255; @@ -27,10 +27,11 @@ public abstract class Indicator extends Drawable implements Animatable { protected Rect drawBounds = ZERO_BOUNDS_RECT; private boolean mHasAnimators; + private int mDuration; - private Paint mPaint=new Paint(); + private Paint mPaint = new Paint(); - public Indicator(){ + public Indicator() { mPaint.setColor(Color.WHITE); mPaint.setStyle(Paint.Style.FILL); mPaint.setAntiAlias(true); @@ -66,7 +67,7 @@ public void setColorFilter(ColorFilter colorFilter) { @Override public void draw(Canvas canvas) { - draw(canvas,mPaint); + draw(canvas, mPaint); } public abstract void draw(Canvas canvas, Paint paint); @@ -95,8 +96,8 @@ private void startAnimators() { //when the animator restart , add the updateListener again because they // was removed by animator stop . - ValueAnimator.AnimatorUpdateListener updateListener=mUpdateListeners.get(animator); - if (updateListener!=null){ + ValueAnimator.AnimatorUpdateListener updateListener = mUpdateListeners.get(animator); + if (updateListener != null) { animator.addUpdateListener(updateListener); } @@ -105,7 +106,7 @@ private void startAnimators() { } private void stopAnimators() { - if (mAnimators!=null){ + if (mAnimators != null) { for (ValueAnimator animator : mAnimators) { if (animator != null && animator.isStarted()) { animator.removeAllUpdateListeners(); @@ -143,13 +144,14 @@ public boolean isRunning() { } /** - * Your should use this to add AnimatorUpdateListener when - * create animator , otherwise , animator doesn't work when - * the animation restart . + * Your should use this to add AnimatorUpdateListener when + * create animator , otherwise , animator doesn't work when + * the animation restart . + * * @param updateListener */ - public void addUpdateListener(ValueAnimator animator, ValueAnimator.AnimatorUpdateListener updateListener){ - mUpdateListeners.put(animator,updateListener); + public void addUpdateListener(ValueAnimator animator, ValueAnimator.AnimatorUpdateListener updateListener) { + mUpdateListeners.put(animator, updateListener); } @Override @@ -166,7 +168,7 @@ public void setDrawBounds(int left, int top, int right, int bottom) { this.drawBounds = new Rect(left, top, right, bottom); } - public void postInvalidate(){ + public void postInvalidate() { invalidateSelf(); } @@ -174,28 +176,40 @@ public Rect getDrawBounds() { return drawBounds; } - public int getWidth(){ + public int getWidth() { return drawBounds.width(); } - public int getHeight(){ + public int getHeight() { return drawBounds.height(); } - public int centerX(){ + public int centerX() { return drawBounds.centerX(); } - public int centerY(){ + public int centerY() { return drawBounds.centerY(); } - public float exactCenterX(){ + public float exactCenterX() { return drawBounds.exactCenterX(); } - public float exactCenterY(){ + public float exactCenterY() { return drawBounds.exactCenterY(); } + public void setDuration(int duration) { + this.mDuration = duration; + } + + public int getDuration() { + if (mDuration<=0) { + return getDefaultDuration(); + } + return mDuration; + } + + public abstract int getDefaultDuration(); } diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml index 7a23b1a..c8c075f 100644 --- a/library/src/main/res/values/attrs.xml +++ b/library/src/main/res/values/attrs.xml @@ -8,6 +8,7 @@ + \ No newline at end of file From e8d1c260709d5b2f1c4aa86bf81882a95dc32520 Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Wed, 19 Apr 2017 22:22:35 +0100 Subject: [PATCH 02/10] Use animation duration in supported indicator classes. --- .../com/wang/avi/indicators/BallBeatIndicator.java | 8 ++++++-- .../avi/indicators/BallClipRotateIndicator.java | 8 ++++++-- .../indicators/BallClipRotateMultipleIndicator.java | 8 ++++++-- .../indicators/BallClipRotatePulseIndicator.java | 11 +++++++---- .../wang/avi/indicators/BallGridBeatIndicator.java | 7 +++++-- .../wang/avi/indicators/BallGridPulseIndicator.java | 5 +++++ .../com/wang/avi/indicators/BallPulseIndicator.java | 7 +++++-- .../wang/avi/indicators/BallPulseRiseIndicator.java | 6 +++++- .../wang/avi/indicators/BallPulseSyncIndicator.java | 7 +++++-- .../wang/avi/indicators/BallRotateIndicator.java | 8 ++++++-- .../com/wang/avi/indicators/BallScaleIndicator.java | 8 ++++++-- .../avi/indicators/BallScaleMultipleIndicator.java | 8 ++++++-- .../avi/indicators/BallScaleRippleIndicator.java | 8 ++++++-- .../BallScaleRippleMultipleIndicator.java | 8 ++++++-- .../avi/indicators/BallSpinFadeLoaderIndicator.java | 9 ++++++--- .../avi/indicators/BallTrianglePathIndicator.java | 9 ++++++--- .../avi/indicators/BallZigZagDeflectIndicator.java | 8 ++++++-- .../wang/avi/indicators/BallZigZagIndicator.java | 8 ++++++-- .../avi/indicators/CubeTransitionIndicator.java | 13 +++++++++---- .../com/wang/avi/indicators/LineScaleIndicator.java | 6 +++++- .../avi/indicators/LineScalePartyIndicator.java | 6 +++++- .../avi/indicators/LineScalePulseOutIndicator.java | 6 +++++- .../indicators/LineScalePulseOutRapidIndicator.java | 6 +++++- .../com/wang/avi/indicators/PacmanIndicator.java | 13 +++++++++---- .../avi/indicators/SemiCircleSpinIndicator.java | 6 +++++- .../wang/avi/indicators/SquareSpinIndicator.java | 8 ++++++-- .../avi/indicators/TriangleSkewSpinIndicator.java | 8 ++++++-- 27 files changed, 159 insertions(+), 54 deletions(-) diff --git a/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java index a8a6e15..0a13a39 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java @@ -49,7 +49,7 @@ public ArrayList onCreateAnimators() { for (int i = 0; i < 3; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.75f,1); - scaleAnim.setDuration(700); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -61,7 +61,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator alphaAnim=ValueAnimator.ofInt(255,51,255); - alphaAnim.setDuration(700); + alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); alphaAnim.setStartDelay(delays[i]); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -78,4 +78,8 @@ public void onAnimationUpdate(ValueAnimator animation) { } + @Override + public int getDefaultDuration() { + return 700; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java index 5d65321..415e551 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java @@ -35,7 +35,7 @@ public void draw(Canvas canvas, Paint paint) { public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.6f,0.5f,1); - scaleAnim.setDuration(750); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -45,7 +45,7 @@ public void onAnimationUpdate(ValueAnimator animation) { } }); ValueAnimator rotateAnim=ValueAnimator.ofFloat(0,180,360); - rotateAnim.setDuration(750); + rotateAnim.setDuration(getDuration()); rotateAnim.setRepeatCount(-1); addUpdateListener(rotateAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -59,4 +59,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 750; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java index 2c59506..9a6ab3a 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java @@ -55,7 +55,7 @@ public void draw(Canvas canvas, Paint paint) { public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.6f,1); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -66,7 +66,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator rotateAnim=ValueAnimator.ofFloat(0, 180,360); - rotateAnim.setDuration(1000); + rotateAnim.setDuration(getDuration()); rotateAnim.setRepeatCount(-1); addUpdateListener(rotateAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -80,4 +80,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java index 3687ed3..fbeae33 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java @@ -50,7 +50,7 @@ public void draw(Canvas canvas, Paint paint) { @Override public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.3f,1); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -61,7 +61,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator scaleAnim2=ValueAnimator.ofFloat(1,0.6f,1); - scaleAnim2.setDuration(1000); + scaleAnim2.setDuration(getDuration()); scaleAnim2.setRepeatCount(-1); addUpdateListener(scaleAnim2,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -72,7 +72,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator rotateAnim=ValueAnimator.ofFloat(0, 180,360); - rotateAnim.setDuration(1000); + rotateAnim.setDuration(getDuration()); rotateAnim.setRepeatCount(-1); addUpdateListener(rotateAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -88,5 +88,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } - + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java index c115c6a..55a6839 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java @@ -71,6 +71,9 @@ public void onAnimationUpdate(ValueAnimator animation) { } - - + @Override + public int getDefaultDuration() { + // not supported + return 0; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java index e0f043f..b4c1e40 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java @@ -97,4 +97,9 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + // not supported + return 0; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java index eef80b0..e895e86 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java @@ -47,7 +47,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.3f,1); - scaleAnim.setDuration(750); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); @@ -63,5 +63,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } - + @Override + public int getDefaultDuration() { + return 750; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallPulseRiseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallPulseRiseIndicator.java index afc48ce..e6c2aed 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallPulseRiseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallPulseRiseIndicator.java @@ -61,9 +61,13 @@ public void onAnimationUpdate(ValueAnimator animation) { }); animator.setInterpolator(new LinearInterpolator()); animator.setRepeatCount(-1); - animator.setDuration(1500); + animator.setDuration(getDuration()); animators.add(animator); return animators; } + @Override + public int getDefaultDuration() { + return 1500; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java index 862f92d..b94c12c 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java @@ -38,7 +38,7 @@ public ArrayList onCreateAnimators() { for (int i = 0; i < 3; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(getHeight()/2,getHeight()/2-radius*2,getHeight()/2); - scaleAnim.setDuration(600); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -53,5 +53,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } - + @Override + public int getDefaultDuration() { + return 600; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallRotateIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallRotateIndicator.java index de4d25b..b03af4c 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallRotateIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallRotateIndicator.java @@ -60,7 +60,7 @@ public void draw(Canvas canvas, Paint paint) { public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); ValueAnimator scaleAnim=ValueAnimator.ofFloat(0.5f,1,0.5f); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -78,7 +78,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - rotateAnim.setDuration(1000); + rotateAnim.setDuration(getDuration()); rotateAnim.setRepeatCount(-1); animators.add(scaleAnim); @@ -86,4 +86,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java index 3e52f7c..e77cc0e 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java @@ -31,7 +31,7 @@ public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); ValueAnimator scaleAnim=ValueAnimator.ofFloat(0,1); scaleAnim.setInterpolator(new LinearInterpolator()); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -43,7 +43,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(255, 0); alphaAnim.setInterpolator(new LinearInterpolator()); - alphaAnim.setDuration(1000); + alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -57,4 +57,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java index 43d4aaa..231e299 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java @@ -35,7 +35,7 @@ public ArrayList onCreateAnimators() { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(0,1); scaleAnim.setInterpolator(new LinearInterpolator()); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -48,7 +48,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(255,0); alphaAnim.setInterpolator(new LinearInterpolator()); - alphaAnim.setDuration(1000); + alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -65,4 +65,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java index d791f71..4afc4d1 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java @@ -26,7 +26,7 @@ public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); ValueAnimator scaleAnim=ValueAnimator.ofFloat(0,1); scaleAnim.setInterpolator(new LinearInterpolator()); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -38,7 +38,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(0, 255); alphaAnim.setInterpolator(new LinearInterpolator()); - alphaAnim.setDuration(1000); + alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -53,4 +53,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java index 5dc132b..b98d586 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java @@ -29,7 +29,7 @@ public ArrayList onCreateAnimators() { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(0,1); scaleAnim.setInterpolator(new LinearInterpolator()); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -42,7 +42,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(0,255); scaleAnim.setInterpolator(new LinearInterpolator()); - alphaAnim.setDuration(1000); + alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -59,4 +59,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java index d93fbb3..8d98929 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java @@ -57,7 +57,7 @@ public ArrayList onCreateAnimators() { for (int i = 0; i < 8; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.4f,1); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -69,7 +69,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator alphaAnim=ValueAnimator.ofInt(255, 77, 255); - alphaAnim.setDuration(1000); + alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); alphaAnim.setStartDelay(delays[i]); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -110,5 +110,8 @@ public Point(float x, float y){ } } - + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java index 1a3a9ba..cc82851 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java @@ -48,7 +48,7 @@ public ArrayList onCreateAnimators() { translateYAnim=ValueAnimator.ofFloat(getHeight()-startY,startY,getHeight()-startY,getHeight()-startY); } - translateXAnim.setDuration(2000); + translateXAnim.setDuration(getDuration()); translateXAnim.setInterpolator(new LinearInterpolator()); translateXAnim.setRepeatCount(-1); addUpdateListener(translateXAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -59,7 +59,7 @@ public void onAnimationUpdate(ValueAnimator animation) { } }); - translateYAnim.setDuration(2000); + translateYAnim.setDuration(getDuration()); translateYAnim.setInterpolator(new LinearInterpolator()); translateYAnim.setRepeatCount(-1); addUpdateListener(translateYAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -76,5 +76,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } - + @Override + public int getDefaultDuration() { + return 2000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java index 93aec2e..d14c289 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java @@ -29,7 +29,7 @@ public ArrayList onCreateAnimators() { translateYAnim=ValueAnimator.ofFloat(getHeight()-startY,getHeight()-startY,startY,startY,getHeight()-startY); } - translateXAnim.setDuration(2000); + translateXAnim.setDuration(getDuration()); translateXAnim.setInterpolator(new LinearInterpolator()); translateXAnim.setRepeatCount(-1); addUpdateListener(translateXAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -40,7 +40,7 @@ public void onAnimationUpdate(ValueAnimator animation) { } }); - translateYAnim.setDuration(2000); + translateYAnim.setDuration(getDuration()); translateYAnim.setInterpolator(new LinearInterpolator()); translateYAnim.setRepeatCount(-1); addUpdateListener(translateYAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -57,4 +57,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 2000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java index d01c8ff..45657fa 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java @@ -43,7 +43,7 @@ public ArrayList onCreateAnimators() { translateYAnim=ValueAnimator.ofFloat(getHeight()-startY,getHeight()-startY,getHeight()/2,getHeight()-startY); } - translateXAnim.setDuration(1000); + translateXAnim.setDuration(getDuration()); translateXAnim.setInterpolator(new LinearInterpolator()); translateXAnim.setRepeatCount(-1); addUpdateListener(translateXAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -54,7 +54,7 @@ public void onAnimationUpdate(ValueAnimator animation) { } }); - translateYAnim.setDuration(1000); + translateYAnim.setDuration(getDuration()); translateYAnim.setInterpolator(new LinearInterpolator()); translateYAnim.setRepeatCount(-1); addUpdateListener(translateYAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -70,4 +70,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java b/library/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java index 181024f..9b23b67 100644 --- a/library/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java @@ -46,7 +46,7 @@ public ArrayList onCreateAnimators() { translationXAnim=ValueAnimator.ofFloat(getWidth()-startX,startX,startX, getWidth()-startX,getWidth()-startX); } translationXAnim.setInterpolator(new LinearInterpolator()); - translationXAnim.setDuration(1600); + translationXAnim.setDuration(getDuration()); translationXAnim.setRepeatCount(-1); translationXAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override @@ -60,7 +60,7 @@ public void onAnimationUpdate(ValueAnimator animation) { if (i==1){ translationYAnim=ValueAnimator.ofFloat(getHeight()-startY,getHeight()-startY,startY,startY,getHeight()-startY); } - translationYAnim.setDuration(1600); + translationYAnim.setDuration(getDuration()); translationYAnim.setInterpolator(new LinearInterpolator()); translationYAnim.setRepeatCount(-1); addUpdateListener(translationYAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -76,7 +76,7 @@ public void onAnimationUpdate(ValueAnimator animation) { } ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.5f,1,0.5f,1); - scaleAnim.setDuration(1600); + scaleAnim.setDuration(getDuration()); scaleAnim.setInterpolator(new LinearInterpolator()); scaleAnim.setRepeatCount(-1); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -88,7 +88,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator rotateAnim=ValueAnimator.ofFloat(0,180,360,1.5f*360,2*360); - rotateAnim.setDuration(1600); + rotateAnim.setDuration(getDuration()); rotateAnim.setInterpolator(new LinearInterpolator()); rotateAnim.setRepeatCount(-1); addUpdateListener(rotateAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -103,4 +103,9 @@ public void onAnimationUpdate(ValueAnimator animation) { animators.add(rotateAnim); return animators; } + + @Override + public int getDefaultDuration() { + return 1600; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java index 83bfe86..64c7208 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java @@ -43,7 +43,7 @@ public ArrayList onCreateAnimators() { for (int i = 0; i < 5; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(1, 0.4f, 1); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -58,4 +58,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java index b316e23..831f234 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java @@ -60,5 +60,9 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } - + @Override + public int getDefaultDuration() { + // not supported + return 0; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java index 2b02150..c365dbc 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java @@ -17,7 +17,7 @@ public ArrayList onCreateAnimators() { for (int i = 0; i < 5; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.3f,1); - scaleAnim.setDuration(900); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -32,4 +32,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 900; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java index 51cfcdc..e46ec92 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java @@ -17,7 +17,7 @@ public ArrayList onCreateAnimators() { for (int i = 0; i < 5; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.4f,1); - scaleAnim.setDuration(1000); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -32,4 +32,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } + @Override + public int getDefaultDuration() { + return 1000; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/PacmanIndicator.java b/library/src/main/java/com/wang/avi/indicators/PacmanIndicator.java index 9a3a2e6..604514a 100644 --- a/library/src/main/java/com/wang/avi/indicators/PacmanIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/PacmanIndicator.java @@ -62,7 +62,7 @@ public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); float startT=getWidth()/11; ValueAnimator translationAnim=ValueAnimator.ofFloat(getWidth()-startT,getWidth()/2); - translationAnim.setDuration(650); + translationAnim.setDuration(getDuration()); translationAnim.setInterpolator(new LinearInterpolator()); translationAnim.setRepeatCount(-1); addUpdateListener(translationAnim,new ValueAnimator.AnimatorUpdateListener() { @@ -74,7 +74,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator alphaAnim=ValueAnimator.ofInt(255,122); - alphaAnim.setDuration(650); + alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -85,7 +85,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator rotateAnim1=ValueAnimator.ofFloat(0, 45, 0); - rotateAnim1.setDuration(650); + rotateAnim1.setDuration(getDuration()); rotateAnim1.setRepeatCount(-1); addUpdateListener(rotateAnim1,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -96,7 +96,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator rotateAnim2=ValueAnimator.ofFloat(0,-45,0); - rotateAnim2.setDuration(650); + rotateAnim2.setDuration(getDuration()); rotateAnim2.setRepeatCount(-1); addUpdateListener(rotateAnim2,new ValueAnimator.AnimatorUpdateListener() { @Override @@ -112,4 +112,9 @@ public void onAnimationUpdate(ValueAnimator animation) { animators.add(rotateAnim2); return animators; } + + @Override + public int getDefaultDuration() { + return 650; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/SemiCircleSpinIndicator.java b/library/src/main/java/com/wang/avi/indicators/SemiCircleSpinIndicator.java index 53a0b70..9212923 100644 --- a/library/src/main/java/com/wang/avi/indicators/SemiCircleSpinIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/SemiCircleSpinIndicator.java @@ -34,10 +34,14 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - rotateAnim.setDuration(600); + rotateAnim.setDuration(getDuration()); rotateAnim.setRepeatCount(-1); animators.add(rotateAnim); return animators; } + @Override + public int getDefaultDuration() { + return 600; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/SquareSpinIndicator.java b/library/src/main/java/com/wang/avi/indicators/SquareSpinIndicator.java index e2b8ae9..9a65b59 100644 --- a/library/src/main/java/com/wang/avi/indicators/SquareSpinIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/SquareSpinIndicator.java @@ -58,7 +58,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); animator.setInterpolator(new LinearInterpolator()); animator.setRepeatCount(-1); - animator.setDuration(2500); + animator.setDuration(getDuration()); ValueAnimator animator1=ValueAnimator.ofFloat(0,0,180,180,0); addUpdateListener(animator1,new ValueAnimator.AnimatorUpdateListener() { @@ -70,11 +70,15 @@ public void onAnimationUpdate(ValueAnimator animation) { }); animator1.setInterpolator(new LinearInterpolator()); animator1.setRepeatCount(-1); - animator1.setDuration(2500); + animator1.setDuration(getDuration()); animators.add(animator); animators.add(animator1); return animators; } + @Override + public int getDefaultDuration() { + return 2500; + } } diff --git a/library/src/main/java/com/wang/avi/indicators/TriangleSkewSpinIndicator.java b/library/src/main/java/com/wang/avi/indicators/TriangleSkewSpinIndicator.java index 93364cd..547465c 100644 --- a/library/src/main/java/com/wang/avi/indicators/TriangleSkewSpinIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/TriangleSkewSpinIndicator.java @@ -64,7 +64,7 @@ public void onAnimationUpdate(ValueAnimator animation) { }); animator.setInterpolator(new LinearInterpolator()); animator.setRepeatCount(-1); - animator.setDuration(2500); + animator.setDuration(getDuration()); ValueAnimator animator1=ValueAnimator.ofFloat(0,0,180,180,0); addUpdateListener(animator1,new ValueAnimator.AnimatorUpdateListener() { @@ -76,11 +76,15 @@ public void onAnimationUpdate(ValueAnimator animation) { }); animator1.setInterpolator(new LinearInterpolator()); animator1.setRepeatCount(-1); - animator1.setDuration(2500); + animator1.setDuration(getDuration()); animators.add(animator); animators.add(animator1); return animators; } + @Override + public int getDefaultDuration() { + return 2500; + } } From ef57fb67a8d66c9cb91b9afc2f09727809a93597 Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Wed, 19 Apr 2017 23:11:46 +0100 Subject: [PATCH 03/10] Update sample. Rename method "setAnimDuration" to "setAnimationDuration" --- .../main/java/com/wang/avi/sample/MyCustomIndicator.java | 7 +++++-- .../src/main/java/com/wang/avi/AVLoadingIndicatorView.java | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/wang/avi/sample/MyCustomIndicator.java b/app/src/main/java/com/wang/avi/sample/MyCustomIndicator.java index 56fe1a0..11d5604 100644 --- a/app/src/main/java/com/wang/avi/sample/MyCustomIndicator.java +++ b/app/src/main/java/com/wang/avi/sample/MyCustomIndicator.java @@ -51,7 +51,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.3f,1); - scaleAnim.setDuration(750); + scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); scaleAnim.setStartDelay(delays[i]); @@ -68,5 +68,8 @@ public void onAnimationUpdate(ValueAnimator animation) { return animators; } - + @Override + public int getDefaultDuration() { + return 750; + } } diff --git a/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java b/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java index 4345fe9..584e96d 100644 --- a/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java +++ b/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java @@ -125,7 +125,7 @@ public void setIndicator(Indicator d) { mIndicator = d; //need to set indicator color again if you didn't specified when you update the indicator . setIndicatorColor(mIndicatorColor); - setAnimDuration(mAnimationDuration); + setAnimationDuration(mAnimationDuration); if (d != null) { d.setCallback(this); } @@ -133,7 +133,7 @@ public void setIndicator(Indicator d) { } } - public void setAnimDuration(int duration) { + public void setAnimationDuration(int duration) { this.mAnimationDuration = duration; mIndicator.setDuration(duration); } From 21f1e9b0f3892ddb68c00292817369c77d7ef420 Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Thu, 20 Apr 2017 00:11:47 +0100 Subject: [PATCH 04/10] Add multiplier to delays to keep them in sync with animation duration value. --- library/src/main/java/com/wang/avi/Indicator.java | 9 +++++++++ .../java/com/wang/avi/indicators/BallBeatIndicator.java | 4 ++-- .../java/com/wang/avi/indicators/BallPulseIndicator.java | 2 +- .../com/wang/avi/indicators/BallPulseSyncIndicator.java | 2 +- .../wang/avi/indicators/BallScaleMultipleIndicator.java | 4 ++-- .../avi/indicators/BallScaleRippleMultipleIndicator.java | 4 ++-- .../wang/avi/indicators/BallSpinFadeLoaderIndicator.java | 4 ++-- .../java/com/wang/avi/indicators/LineScaleIndicator.java | 2 +- .../wang/avi/indicators/LineScalePulseOutIndicator.java | 2 +- .../avi/indicators/LineScalePulseOutRapidIndicator.java | 2 +- 10 files changed, 22 insertions(+), 13 deletions(-) diff --git a/library/src/main/java/com/wang/avi/Indicator.java b/library/src/main/java/com/wang/avi/Indicator.java index 395afa8..0c4a13e 100644 --- a/library/src/main/java/com/wang/avi/Indicator.java +++ b/library/src/main/java/com/wang/avi/Indicator.java @@ -212,4 +212,13 @@ public int getDuration() { } public abstract int getDefaultDuration(); + + /** + * This is used to multiply the delays so they will be + * in sync with the duration values. + * @return the multiplier. + */ + public int getMultiplier() { + return getDuration() / getDefaultDuration(); + } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java index 0a13a39..d4d0c4b 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java @@ -51,7 +51,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.75f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -63,7 +63,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(255,51,255); alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); - alphaAnim.setStartDelay(delays[i]); + alphaAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java index e895e86..554f277 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java @@ -49,7 +49,7 @@ public ArrayList onCreateAnimators() { scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override diff --git a/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java index b94c12c..fd10453 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java @@ -40,7 +40,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(getHeight()/2,getHeight()/2-radius*2,getHeight()/2); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java index 231e299..d55be71 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java @@ -44,7 +44,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); ValueAnimator alphaAnim=ValueAnimator.ofInt(255,0); alphaAnim.setInterpolator(new LinearInterpolator()); @@ -57,7 +57,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); animators.add(scaleAnim); animators.add(alphaAnim); diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java index b98d586..5572b01 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java @@ -38,7 +38,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); ValueAnimator alphaAnim=ValueAnimator.ofInt(0,255); scaleAnim.setInterpolator(new LinearInterpolator()); @@ -51,7 +51,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); animators.add(scaleAnim); animators.add(alphaAnim); diff --git a/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java index 8d98929..758c5d8 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java @@ -59,7 +59,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.4f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -71,7 +71,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(255, 77, 255); alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); - alphaAnim.setStartDelay(delays[i]); + alphaAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java index 64c7208..4a68376 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java @@ -45,7 +45,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1, 0.4f, 1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java index c365dbc..4ee9056 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java @@ -19,7 +19,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.3f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java index e46ec92..8eafcbf 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java @@ -19,7 +19,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.4f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay(delays[i]*getMultiplier()); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { From ea0dd492ce906f960dca90c5fd4cb46381b49b27 Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Thu, 20 Apr 2017 09:24:21 +0100 Subject: [PATCH 05/10] Add workaround to support animation duration in all classes. --- .../wang/avi/indicators/BallGridBeatIndicator.java | 10 ++++++---- .../avi/indicators/BallGridPulseIndicator.java | 14 ++++++++------ .../avi/indicators/LineScalePartyIndicator.java | 11 +++++++---- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java index 55a6839..893d612 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java @@ -52,12 +52,15 @@ public ArrayList onCreateAnimators() { int[] durations={960, 930, 1190, 1130, 1340, 940, 1200, 820, 1190}; int[] delays= {360, 400, 680, 410, 710, -150, -120, 10, 320}; + float durationsMultiplier = getDuration()/durations[0]; + float delaysMultiplier = getDuration()/delays[0]; + for (int i = 0; i < 9; i++) { final int index=i; ValueAnimator alphaAnim=ValueAnimator.ofInt(255, 168,255); - alphaAnim.setDuration(durations[i]); + alphaAnim.setDuration((long) (durations[i]*durationsMultiplier)); alphaAnim.setRepeatCount(-1); - alphaAnim.setStartDelay(delays[i]); + alphaAnim.setStartDelay((long) (delays[i]*delaysMultiplier)); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -73,7 +76,6 @@ public void onAnimationUpdate(ValueAnimator animation) { @Override public int getDefaultDuration() { - // not supported - return 0; + return 960; } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java index b4c1e40..78e8454 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java @@ -66,12 +66,15 @@ public ArrayList onCreateAnimators() { int[] durations={720, 1020, 1280, 1420, 1450, 1180, 870, 1450, 1060}; int[] delays= {-60, 250, -170, 480, 310, 30, 460, 780, 450}; + float durationsMultiplier = getDuration()/durations[0]; + float delaysMultiplier = getDuration()/delays[0]; + for (int i = 0; i < 9; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.5f,1); - scaleAnim.setDuration(durations[i]); + scaleAnim.setDuration((long) (durations[i]*durationsMultiplier)); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay((long) (delays[i]*delaysMultiplier)); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -81,9 +84,9 @@ public void onAnimationUpdate(ValueAnimator animation) { }); ValueAnimator alphaAnim=ValueAnimator.ofInt(255, 210, 122, 255); - alphaAnim.setDuration(durations[i]); + alphaAnim.setDuration((long) (durations[i]*durationsMultiplier)); alphaAnim.setRepeatCount(-1); - alphaAnim.setStartDelay(delays[i]); + alphaAnim.setStartDelay((long) (delays[i]*delaysMultiplier)); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -99,7 +102,6 @@ public void onAnimationUpdate(ValueAnimator animation) { @Override public int getDefaultDuration() { - // not supported - return 0; + return 720; } } diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java index 831f234..8d09c74 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java @@ -42,12 +42,16 @@ public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); long[] durations=new long[]{1260, 430, 1010, 730}; long[] delays=new long[]{770, 290, 280, 740}; + + float durationsMultiplier = getDuration()/durations[0]; + float delaysMultiplier = getDuration()/delays[0]; + for (int i = 0; i < 4; i++) { final int index=i; ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.4f,1); - scaleAnim.setDuration(durations[i]); + scaleAnim.setDuration((long) (durations[i]*durationsMultiplier)); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]); + scaleAnim.setStartDelay((long) (delays[i]*delaysMultiplier)); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -62,7 +66,6 @@ public void onAnimationUpdate(ValueAnimator animation) { @Override public int getDefaultDuration() { - // not supported - return 0; + return 1260; } } From fb68ca639601f0a6dc42480e586445c9cd99b2ce Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Thu, 20 Apr 2017 09:44:15 +0100 Subject: [PATCH 06/10] Change multiplier to float. --- library/src/main/java/com/wang/avi/Indicator.java | 2 +- .../java/com/wang/avi/indicators/BallBeatIndicator.java | 4 ++-- .../com/wang/avi/indicators/BallGridBeatIndicator.java | 4 ++-- .../com/wang/avi/indicators/BallGridPulseIndicator.java | 4 ++-- .../java/com/wang/avi/indicators/BallPulseIndicator.java | 2 +- .../com/wang/avi/indicators/BallPulseSyncIndicator.java | 2 +- .../wang/avi/indicators/BallScaleMultipleIndicator.java | 4 ++-- .../avi/indicators/BallScaleRippleMultipleIndicator.java | 4 ++-- .../wang/avi/indicators/BallSpinFadeLoaderIndicator.java | 4 ++-- .../java/com/wang/avi/indicators/LineScaleIndicator.java | 2 +- .../com/wang/avi/indicators/LineScalePartyIndicator.java | 7 +++---- .../wang/avi/indicators/LineScalePulseOutIndicator.java | 2 +- .../avi/indicators/LineScalePulseOutRapidIndicator.java | 2 +- 13 files changed, 21 insertions(+), 22 deletions(-) diff --git a/library/src/main/java/com/wang/avi/Indicator.java b/library/src/main/java/com/wang/avi/Indicator.java index 0c4a13e..2109c9d 100644 --- a/library/src/main/java/com/wang/avi/Indicator.java +++ b/library/src/main/java/com/wang/avi/Indicator.java @@ -218,7 +218,7 @@ public int getDuration() { * in sync with the duration values. * @return the multiplier. */ - public int getMultiplier() { + public float getMultiplier() { return getDuration() / getDefaultDuration(); } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java index d4d0c4b..47c6aa3 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java @@ -51,7 +51,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.75f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -63,7 +63,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(255,51,255); alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); - alphaAnim.setStartDelay(delays[i]*getMultiplier()); + alphaAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java index 893d612..2388214 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java @@ -45,11 +45,11 @@ public void draw(Canvas canvas, Paint paint) { } } + private int[] durations={960, 930, 1190, 1130, 1340, 940, 1200, 820, 1190}; @Override public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); - int[] durations={960, 930, 1190, 1130, 1340, 940, 1200, 820, 1190}; int[] delays= {360, 400, 680, 410, 710, -150, -120, 10, 320}; float durationsMultiplier = getDuration()/durations[0]; @@ -76,6 +76,6 @@ public void onAnimationUpdate(ValueAnimator animation) { @Override public int getDefaultDuration() { - return 960; + return durations[0]; } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java index 78e8454..0d1f07c 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java @@ -60,10 +60,10 @@ public void draw(Canvas canvas, Paint paint) { } } + private int[] durations={720, 1020, 1280, 1420, 1450, 1180, 870, 1450, 1060}; @Override public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); - int[] durations={720, 1020, 1280, 1420, 1450, 1180, 870, 1450, 1060}; int[] delays= {-60, 250, -170, 480, 310, 30, 460, 780, 450}; float durationsMultiplier = getDuration()/durations[0]; @@ -102,6 +102,6 @@ public void onAnimationUpdate(ValueAnimator animation) { @Override public int getDefaultDuration() { - return 720; + return durations[0]; } } diff --git a/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java index 554f277..c2a91c2 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java @@ -49,7 +49,7 @@ public ArrayList onCreateAnimators() { scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override diff --git a/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java index fd10453..c0fe792 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java @@ -40,7 +40,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(getHeight()/2,getHeight()/2-radius*2,getHeight()/2); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java index d55be71..c0dc78f 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java @@ -44,7 +44,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); ValueAnimator alphaAnim=ValueAnimator.ofInt(255,0); alphaAnim.setInterpolator(new LinearInterpolator()); @@ -57,7 +57,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); animators.add(scaleAnim); animators.add(alphaAnim); diff --git a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java index 5572b01..e1dc069 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java @@ -38,7 +38,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); ValueAnimator alphaAnim=ValueAnimator.ofInt(0,255); scaleAnim.setInterpolator(new LinearInterpolator()); @@ -51,7 +51,7 @@ public void onAnimationUpdate(ValueAnimator animation) { postInvalidate(); } }); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); animators.add(scaleAnim); animators.add(alphaAnim); diff --git a/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java b/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java index 758c5d8..31c6a73 100644 --- a/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java @@ -59,7 +59,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.4f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { @@ -71,7 +71,7 @@ public void onAnimationUpdate(ValueAnimator animation) { ValueAnimator alphaAnim=ValueAnimator.ofInt(255, 77, 255); alphaAnim.setDuration(getDuration()); alphaAnim.setRepeatCount(-1); - alphaAnim.setStartDelay(delays[i]*getMultiplier()); + alphaAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(alphaAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java index 4a68376..f5bf6b3 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java @@ -45,7 +45,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1, 0.4f, 1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java index 8d09c74..8c783a3 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java @@ -36,12 +36,11 @@ public void draw(Canvas canvas, Paint paint) { } } - + private int[] durations={1260, 430, 1010, 730}; @Override public ArrayList onCreateAnimators() { ArrayList animators=new ArrayList<>(); - long[] durations=new long[]{1260, 430, 1010, 730}; - long[] delays=new long[]{770, 290, 280, 740}; + int[] delays={770, 290, 280, 740}; float durationsMultiplier = getDuration()/durations[0]; float delaysMultiplier = getDuration()/delays[0]; @@ -66,6 +65,6 @@ public void onAnimationUpdate(ValueAnimator animation) { @Override public int getDefaultDuration() { - return 1260; + return durations[0]; } } diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java index 4ee9056..8755318 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutIndicator.java @@ -19,7 +19,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.3f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { diff --git a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java index 8eafcbf..f7d4fb4 100644 --- a/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java +++ b/library/src/main/java/com/wang/avi/indicators/LineScalePulseOutRapidIndicator.java @@ -19,7 +19,7 @@ public ArrayList onCreateAnimators() { ValueAnimator scaleAnim=ValueAnimator.ofFloat(1,0.4f,1); scaleAnim.setDuration(getDuration()); scaleAnim.setRepeatCount(-1); - scaleAnim.setStartDelay(delays[i]*getMultiplier()); + scaleAnim.setStartDelay((long) (delays[i]*getMultiplier())); addUpdateListener(scaleAnim,new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { From 0d9c6f30c40a832166537c0919ea506633ea80e2 Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Thu, 20 Apr 2017 11:15:42 +0100 Subject: [PATCH 07/10] Use "getInteger" instead of "getInt" --- library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java b/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java index 584e96d..480158b 100644 --- a/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java +++ b/library/src/main/java/com/wang/avi/AVLoadingIndicatorView.java @@ -103,7 +103,7 @@ private void init(Context context, AttributeSet attrs, int defStyleAttr, int def mMaxHeight = a.getDimensionPixelSize(R.styleable.AVLoadingIndicatorView_maxHeight, mMaxHeight); String indicatorName = a.getString(R.styleable.AVLoadingIndicatorView_indicatorName); mIndicatorColor = a.getColor(R.styleable.AVLoadingIndicatorView_indicatorColor, Color.WHITE); - mAnimationDuration = a.getInt(R.styleable.AVLoadingIndicatorView_animationDuration, 0); + mAnimationDuration = a.getInteger(R.styleable.AVLoadingIndicatorView_animationDuration, 0); setIndicator(indicatorName); if (mIndicator == null) { setIndicator(DEFAULT_INDICATOR); From 052a1e4f69beae471fabe23bb44de90eec377f14 Mon Sep 17 00:00:00 2001 From: Kizito Nwose Date: Thu, 20 Apr 2017 11:28:51 +0100 Subject: [PATCH 08/10] Update sample to show usage of animation duration. --- .../wang/avi/sample/IndicatorActivity.java | 41 +++++++++++++++++++ .../main/res/layout/activity_indicator.xml | 8 ++++ 2 files changed, 49 insertions(+) diff --git a/app/src/main/java/com/wang/avi/sample/IndicatorActivity.java b/app/src/main/java/com/wang/avi/sample/IndicatorActivity.java index 94073c6..5e6e78d 100644 --- a/app/src/main/java/com/wang/avi/sample/IndicatorActivity.java +++ b/app/src/main/java/com/wang/avi/sample/IndicatorActivity.java @@ -1,9 +1,15 @@ package com.wang.avi.sample; +import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; +import android.text.InputFilter; +import android.text.InputType; +import android.util.TypedValue; import android.view.View; +import android.widget.EditText; import com.wang.avi.AVLoadingIndicatorView; @@ -21,8 +27,11 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { setContentView(R.layout.activity_indicator); String indicator=getIntent().getStringExtra("indicator"); + int duration = getIntent().getIntExtra("duration", 0); avi= (AVLoadingIndicatorView) findViewById(R.id.avi); + avi.setAnimationDuration(duration); avi.setIndicator(indicator); + setUpDialog(); } public void hideClick(View view) { @@ -34,4 +43,36 @@ public void showClick(View view) { avi.show(); // or avi.smoothToShow(); } + + public void durationClick(View view) { + dialog.show(); + } + + private EditText editText; + private AlertDialog dialog; + private void setUpDialog(){ + editText = new EditText(this); + editText.setInputType(InputType.TYPE_CLASS_NUMBER); + editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(5)}); + int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, + getResources().getDisplayMetrics()); + dialog = new AlertDialog.Builder(this) + .setTitle("Animation duration") + .setMessage("Enter desired animation duration in milliseconds.") + .setView(editText, padding, padding, padding, padding) + .setPositiveButton("APPLY", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String duration = editText.getText().toString().trim(); + if (!duration.isEmpty()) { + setIntent(getIntent().putExtra("duration", Integer.parseInt(duration))); + recreate(); + } + } + }) + .setNegativeButton("CANCEL", null) + .create(); + + } + } diff --git a/app/src/main/res/layout/activity_indicator.xml b/app/src/main/res/layout/activity_indicator.xml index 7c87600..7b613f1 100644 --- a/app/src/main/res/layout/activity_indicator.xml +++ b/app/src/main/res/layout/activity_indicator.xml @@ -34,6 +34,14 @@ android:onClick="showClick" /> +