package com.gc.materialdesign.views; import com.gc.materialdesign.R; import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.content.Context; import android.util.AttributeSet; import android.view.ViewPropertyAnimator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; public class ProgressBarIndeterminate extends ProgressBarDetermininate { public ProgressBarIndeterminate(Context context, AttributeSet attrs) { super(context, attrs); post(new Runnable() { @Override public void run() { // Make progress animation setProgress(60); Animation anim = AnimationUtils.loadAnimation(getContext(), R.anim.progress_indeterminate_animation); progressView.startAnimation(anim); final ViewPropertyAnimator anim2 = progressView.animate(); anim2.x(getWidth()).setDuration(1200); anim2.setListener(new AnimatorListener() { int cont = 1; int suma = 1; int duration = 1200; @Override public void onAnimationEnd(Animator arg0) { // Repeat animation progressView.setX(-progressView.getWidth()/2); cont += suma; progressView.animate().setListener(this).x(getWidth()).setDuration(duration/cont).start(); if(cont == 3 || cont == 1) suma *=-1; } @Override public void onAnimationStart(Animator arg0) { } @Override public void onAnimationRepeat(Animator arg0) { } @Override public void onAnimationCancel(Animator arg0) {} }); anim2.start(); } }); } }