Home | History | Annotate | Download | only in target
      1 package com.bumptech.glide.request.target;
      2 
      3 import android.graphics.drawable.Drawable;
      4 import android.widget.ImageView;
      5 
      6 import com.bumptech.glide.request.animation.GlideAnimation;
      7 
      8 /**
      9  * A base {@link com.bumptech.glide.request.target.Target} for displaying resources in
     10  * {@link android.widget.ImageView}s.
     11  *
     12  * @param <Z> The type of resource that this target will display in the wrapped {@link android.widget.ImageView}.
     13  */
     14 public abstract class ImageViewTarget<Z> extends ViewTarget<ImageView, Z> implements GlideAnimation.ViewAdapter {
     15 
     16     public ImageViewTarget(ImageView view) {
     17         super(view);
     18     }
     19 
     20     /**
     21      * Returns the current {@link android.graphics.drawable.Drawable} being displayed in the view using
     22      * {@link android.widget.ImageView#getDrawable()}.
     23      */
     24     @Override
     25     public Drawable getCurrentDrawable() {
     26         return view.getDrawable();
     27     }
     28 
     29     /**
     30      * Sets the given {@link android.graphics.drawable.Drawable} on the view using
     31      * {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
     32      *
     33      * @param drawable {@inheritDoc}
     34      */
     35     @Override
     36     public void setDrawable(Drawable drawable) {
     37         view.setImageDrawable(drawable);
     38     }
     39 
     40     /**
     41      * Sets the given {@link android.graphics.drawable.Drawable} on the view using
     42      * {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
     43      *
     44      * @param placeholder {@inheritDoc}
     45      */
     46     @Override
     47     public void onLoadStarted(Drawable placeholder) {
     48         view.setImageDrawable(placeholder);
     49     }
     50 
     51     /**
     52      * Sets the given {@link android.graphics.drawable.Drawable} on the view using
     53      * {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
     54      *
     55      * @param errorDrawable {@inheritDoc}
     56      */
     57     @Override
     58     public void onLoadFailed(Exception e, Drawable errorDrawable) {
     59         view.setImageDrawable(errorDrawable);
     60     }
     61 
     62     /**
     63      * Sets the given {@link android.graphics.drawable.Drawable} on the view using
     64      * {@link android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}.
     65      *
     66      * @param placeholder {@inheritDoc}
     67      */
     68     @Override
     69     public void onLoadCleared(Drawable placeholder) {
     70         view.setImageDrawable(placeholder);
     71     }
     72 
     73     @Override
     74     public void onResourceReady(Z resource, GlideAnimation<? super Z> glideAnimation) {
     75         if (glideAnimation == null || !glideAnimation.animate(resource, this)) {
     76             setResource(resource);
     77         }
     78     }
     79 
     80     protected abstract void setResource(Z resource);
     81 
     82 }
     83 
     84