package com.bumptech.glide.request.target; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.widget.ImageView; import com.bumptech.glide.load.resource.drawable.GlideDrawable; /** * A factory responsible for producing the correct type of {@link com.bumptech.glide.request.target.Target} for a given * {@link android.view.View} subclass. */ public class ImageViewTargetFactory { @SuppressWarnings("unchecked") public Target buildTarget(ImageView view, Class clazz) { if (GlideDrawable.class.isAssignableFrom(clazz)) { return (Target) new GlideDrawableImageViewTarget(view); } else if (Bitmap.class.equals(clazz)) { return (Target) new BitmapImageViewTarget(view); } else if (Drawable.class.isAssignableFrom(clazz)) { return (Target) new DrawableImageViewTarget(view); } else { throw new IllegalArgumentException("Unhandled class: " + clazz + ", try .as*(Class).transcode(ResourceTranscoder)"); } } }