package com.cmeiyuan.widget; import android.content.Context; import android.util.AttributeSet; import android.view.animation.Interpolator; import com.nineoldandroids.animation.ObjectAnimator; public class AnimProgressView extends ProgressView { private long mDuration = 500; private ObjectAnimator mObjectAnimator; public AnimProgressView(Context context) { super(context); init(); } public AnimProgressView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public AnimProgressView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init() { mObjectAnimator = new ObjectAnimator(); mObjectAnimator.setTarget(this); mObjectAnimator.setPropertyName("progress"); } public void setInterpolator(Interpolator value) { mObjectAnimator.setInterpolator(value); } public void setDuration(long duration) { this.mDuration = duration; } public long getDuration() { return mDuration; } public void startAnimation() { stopAnimation(); int duration = (int) (mDuration * Math.abs(getProgress())); mObjectAnimator.setDuration(Math.max(100, duration)); mObjectAnimator.setFloatValues(0, getProgress()); mObjectAnimator.start(); } @Deprecated public void startAnimation(long delay) { startAnimation(); } public void stopAnimation() { if (mObjectAnimator.isRunning()) { mObjectAnimator.end(); } } }