All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bumptech.glide.request.transition.ViewTransition Maven / Gradle / Ivy

Go to download

A fast and efficient image loading library for Android focused on smooth scrolling.

There is a newer version: 5.0.0-rc01
Show newest version
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);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy