Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.koushikdutta.ion;
  
  import  android.graphics.drawable.Drawable;
  import  android.view.animation.Animation;
  import  android.widget.ImageView;
  
 
 class ImageViewFutureImpl extends TransformFuture<ImageView, IonDrawableimplements ImageViewFuture {
     public static final ImageViewFutureImpl FUTURE_IMAGEVIEW_NULL_URI = new ImageViewFutureImpl() {
         {
             setComplete(new NullPointerException("uri"));
         }
     };
 
     private ScaleMode scaleMode;
     private Animation inAnimation;
     private int inAnimationResource;
 
         ImageViewFutureImpl ret;
 
         if (drawable.getLoadCallback() instanceof ImageViewFutureImpl)
             ret = (ImageViewFutureImpl)drawable.getLoadCallback();
         else
             ret = new ImageViewFutureImpl();
 
         drawable.setLoadCallback(ret);
         ret.imageViewRef = imageViewRef;
         return ret;
     }
 
     @Override
     protected void transform(IonDrawable resultthrows Exception {
         // need to make sure that the IonDrawable calling this future
         // is still needed. It may have changed if the user manually
         // called setDrawable on the ImageView, etc.
         final ImageView imageView = .get();
 
         // check the imageview and the activity context
         if (null != .isAlive() || imageView == null) {
             cancelSilently();
             return;
         }
 
         if (imageView.getDrawable() != result) {
             // imageview is now waiting for something else now... cancel
             cancelSilently();
             return;
         }
 
         // retrigger the intrinsic dimension check on the drawable
         BitmapInfo info = result.getBitmapInfo();
         if (info != null && info.exception == null) {
             applyScaleMode(imageView);
         }
         IonBitmapRequestBuilder.doAnimation(imageView);
         imageView.setImageDrawable(null);
         imageView.setImageDrawable(result);
         setComplete(imageView);
     }
 
     @Override
         final SimpleFuture<ImageViewBitmapInforet = new SimpleFuture<ImageViewBitmapInfo>();
         setCallback(new FutureCallback<ImageView>() {
             @Override
             public void onCompleted(Exception e, ImageView result) {
                 ImageViewBitmapInfo val = new ImageViewBitmapInfo();
                 Drawable d = null;
                 if (result != null)
                     d = result.getDrawable();
                 if (d instanceof IonDrawable) {
                     IonDrawable id = (IonDrawabled;
                     val.info = id.getBitmapInfo();
                 }
                 val.exception = e;
                 val.imageView = result;
                 ret.setComplete(val);
             }
         });
         ret.setParent(this);
         return ret;
     }
 
     public ImageViewFutureImpl setInAnimation(Animation inAnimationint inAnimationResource) {
         this. = inAnimation;
         this. = inAnimationResource;
         return this;
     }
 
     public ImageViewFutureImpl setScaleMode(ScaleMode scaleMode) {
         this. = scaleMode;
        return this;
    }
    public static void applyScaleMode(ImageView imageViewScaleMode scaleMode) {
        if (scaleMode == null)
            return;
        switch (scaleMode) {
            case :
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                break;
            case :
                imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                break;
            case :
                imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
                break;
            case :
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                break;
        }
    }
New to GrepCode? Check out our FAQ X