下面列出了android.animation.ValueAnimator#isRunning ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void onAnimationUpdate(ValueAnimator animation) {
if (mPaused || !animation.isRunning()) {
return;
}
long curTime = animation.getCurrentPlayTime();
if (curTime >= mPhotoMovie.getDuration()) {
mAnimator.removeUpdateListener(this);
mAnimator.removeListener(this);
mAnimator.end();
if (mMovieListener != null) {
mMovieListener.onMovieEnd();
}
mAnimator.addUpdateListener(this);
mAnimator.addListener(this);
if(mLoop){
mAnimator.start();
}
}else{
if (mMovieListener != null) {
mMovieListener.onMovieUpdate((int) curTime);
}
}
}
@Override
public boolean isRunning() {
for (ValueAnimator animator : mAnimators) {
return animator.isRunning();
}
return false;
}
@Override
public boolean isRunning() {
for (ValueAnimator animator : mAnimators) {
return animator.isRunning();
}
return false;
}
public static boolean isRunning(ValueAnimator animator) {
return animator != null && animator.isRunning();
}
@Override
protected void onDraw(Canvas canvas) {
// super.onDraw(canvas);
// allocations per draw cycle.
int paddingLeft = getPaddingLeft();
int paddingTop = getPaddingTop();
int paddingRight = getPaddingRight();
int paddingBottom = getPaddingBottom();
int contentWidth = getWidth() - paddingLeft - paddingRight;
int contentHeight = getHeight() - paddingTop - paddingBottom;
Log.e(".......", "paddingTop = " + paddingTop
+ ",paddingBottom = " + paddingBottom
+ ",contentHeight = " + contentHeight
+ ",mTextSize = " + mTextSize
+ ",mTextHeight = " + mTextHeight
+ ",getHeight() = " + getHeight());
float startX = paddingLeft + (contentWidth - mTextWidth) / 2;
startX -= mExtraSpace * (startNumber.size() - 1) / 2;
float startY = paddingTop + (contentHeight + mTextHeight) / 2;
// progress : 0f ~ 1f
// dy : 0 ~ (mTextHeight * mNumberString.length()-1)
for (int i = 0; i < startNumber.size(); i++) {
float progress = 1;
if (i < animatorList.size()) {
progress = (float) animatorList.get(i).getAnimatedValue();
}
int dy = (int) ((mTextSize * 5) * progress);
startY = mTextSize - mTextHeight / 2 - dy;
Integer num = startNumber.get(i);
for (int j = 0; j < 6; j++) {
String c = "" + calcNum(num, -j);
canvas.drawText(c,
startX,
startY,
mTextPaint);
startY += mTextSize;
}
startX += mCharWidth + mExtraSpace;
}
boolean end = true;
for (ValueAnimator valueAnimator : animatorList) {
if (valueAnimator.isRunning()) {
end = false;
}
}
if (!end) {
invalidate();
}
}