package at.favre.lib.dali.builder.animation;
import android.animation.TimeInterpolator;
import android.view.animation.LinearInterpolator;
import at.favre.lib.dali.builder.BuilderDefaults;
import at.favre.lib.dali.util.BuilderUtil;
/**
* Created by PatrickF on 02.06.2014.
*/
public class BlurKeyFrameAnimationBuilder {
private int startDownSample = 2;
private int endDownSample = 8;
private int framesCount = 4;
private int endBlurRadius = BuilderDefaults.BLUR_RADIUS;
private float endBrightness = 0;
private long durationOfWholeAnimationMs= 800;
private TimeInterpolator interpolator = new LinearInterpolator();
public BlurKeyFrameAnimationBuilder() {
}
public BlurKeyFrameAnimationBuilder keyFrames(int framesCount) {
this.framesCount = framesCount;
return this;
}
public BlurKeyFrameAnimationBuilder startDownSample(int startDownSample) {
this.startDownSample = startDownSample;
return this;
}
public BlurKeyFrameAnimationBuilder endDownSample(int endDownSample) {
this.endDownSample = endDownSample;
return this;
}
public BlurKeyFrameAnimationBuilder blurRadius(int blurRadius) {
BuilderUtil.checkBlurRadiusPrecondition(blurRadius);
this.endBlurRadius = blurRadius;
return this;
}
public BlurKeyFrameAnimationBuilder brightness(int brightness) {
this.endBrightness = brightness;
return this;
}
public BlurKeyFrameAnimationBuilder duration(long milliseconds) {
this.durationOfWholeAnimationMs = milliseconds;
return this;
}
public BlurKeyFrameAnimationBuilder interpolator(TimeInterpolator interpolator) {
this.interpolator = interpolator;
return this;
}
public BlurKeyFrameManager build() {
BlurKeyFrameManager man = new BlurKeyFrameManager();
// int durationPerFrame = (int) ((float) durationOfWholeAnimationMs / (float) framesCount);
// int radiusDownScalePerFrame = endDownSample -startDownSample *endBlurRadius;
// int radiusIncrement = (int) ((float) endBlurRadius / (float) keyFrames);
// int brightnessIncrement = 0;
// if(endBrightness != 0) {
// brightnessIncrement = (int) ((float) endBrightness / (float) keyFrames);;
// }
// for (int i = 0; i < keyFrames; i++) {
// man.addKeyFrame(new BlurKeyFrame(inSampleSize,radiusIncrement*(i+1),brightnessIncrement*(i+1),durationPerFrame));
// }
return man;
}
}