com.bumptech.glide.request.transition.ViewTransition Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of glide Show documentation
Show all versions of glide Show documentation
A fast and efficient image loading library for Android focused on smooth scrolling.
package com.bumptech.glide.request.transition;
import android.content.Context;
import android.view.View;
import android.view.animation.Animation;
/**
* A {@link Transition} that can apply a {@link android.view.animation.Animation Animation} to a
* {@link android.view.View View} using
* {@link android.view.View#startAnimation(android.view.animation.Animation)}.
*
* @param The type of the resource that will be transitioned into a view.
*/
public class ViewTransition implements Transition {
private final ViewTransitionAnimationFactory viewTransitionAnimationFactory;
/**
* Constructs a new ViewAnimation that will start the given {@link android.view.animation
* .Animation}.
*/
ViewTransition(ViewTransitionAnimationFactory viewTransitionAnimationFactory) {
this.viewTransitionAnimationFactory = viewTransitionAnimationFactory;
}
/**
* Always clears the current animation on the view using
* {@link android.view.View#clearAnimation()}, then starts the
* {@link android.view.animation.Animation} given in the constructor using
* {@link android.view.View#startAnimation(android.view.animation.Animation)} and then returns
* {@code false} because the animation does not actually put the current resource on the view.
*
* @param current {@inheritDoc}
* @param adapter {@inheritDoc}
* @return {@inheritDoc}
*/
@Override
public boolean transition(R current, ViewAdapter adapter) {
View view = adapter.getView();
if (view != null) {
view.clearAnimation();
Animation animation = viewTransitionAnimationFactory.build(view.getContext());
view.startAnimation(animation);
}
return false;
}
interface ViewTransitionAnimationFactory {
Animation build(Context context);
}
}