private AnimatingDrawable(Drawable[] frames, long duration) {
mFrames = frames;
mAnimator = ValueAnimator.ofInt(0, mFrames.length - 1);
mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
// Normalize the position in case the interporator isn't linear
int pos = Math.max(Math.min((int) animation.getAnimatedValue(), mFrames.length - 1), 0);
setFrame(mFrames[pos]);
}
});
mAnimator.setDuration(duration);
mAnimator.setInterpolator(new LinearInterpolator());
// Calculate the largest drawable, and use that as our intrinsic width/height
for (Drawable drawable : mFrames) {
mIntrinsicWidth = Math.max(mIntrinsicWidth, drawable.getIntrinsicWidth());
mIntrinsicHeight = Math.max(mIntrinsicHeight, drawable.getIntrinsicWidth());
}
setFrame(mFrames[0]);
}
AnimatingDrawable.java 文件源码
java
阅读 32
收藏 0
点赞 0
评论 0
项目:floating_calc
作者:
评论列表
文章目录