package me.xiaopan.sketch.display;
import android.graphics.drawable.Drawable;
import android.view.animation.AlphaAnimation;
import android.view.animation.DecelerateInterpolator;
import me.xiaopan.sketch.request.ImageViewInterface;
/**
* 渐入动画
*/
@SuppressWarnings("unused")
public class FadeInImageDisplayer implements ImageDisplayer {
private String logName = "FadeInImageDisplayer";
private int duration;
private boolean alwaysUse;
public FadeInImageDisplayer(int duration, boolean alwaysUse) {
this.duration = duration;
this.alwaysUse = alwaysUse;
}
public FadeInImageDisplayer(int duration) {
this(duration, false);
}
public FadeInImageDisplayer(boolean alwaysUse) {
this(DEFAULT_ANIMATION_DURATION, alwaysUse);
}
public FadeInImageDisplayer() {
this(DEFAULT_ANIMATION_DURATION, false);
}
@Override
public void display(ImageViewInterface imageViewInterface, Drawable newDrawable) {
if (newDrawable == null) {
return;
}
AlphaAnimation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setInterpolator(new DecelerateInterpolator());
animation.setDuration(duration);
imageViewInterface.clearAnimation();
imageViewInterface.setImageDrawable(newDrawable);
imageViewInterface.startAnimation(animation);
}
@Override
public int getDuration() {
return duration;
}
@Override
public boolean isAlwaysUse() {
return alwaysUse;
}
@Override
public String getKey() {
return String.format("%s(duration=%d, alwaysUse=%s)", logName, duration, alwaysUse);
}
}