private static RequestQueue newRequestQueue(Context context, ImageCacheParams imageCacheParams) { Network network = new BasicNetwork( Utils.hasHoneycomb() ? new HurlStack() : new HttpClientStack( AndroidHttpClient.newInstance(NetUtils.getUserAgent(context)))); Cache cache; if (null != imageCacheParams) { cache = new DiskLruBasedCache(imageCacheParams); } else { cache = new DiskLruBasedCache(Utils.getDiskCacheDir(context, CACHE_DIR)); } RequestQueue queue = new RequestQueue(cache, network); queue.start(); return queue; }
/** * Sets a {@link Bitmap} to an {@link ImageView} using a fade-in animation. If there is a {@link * Drawable} already set on the ImageView then use that as the image to fade from. Otherwise fade * in from a transparent Drawable. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) private static void setImageBitmap( final ImageView imageView, final Bitmap bitmap, Resources resources, boolean fadeIn) { // If we're fading in and on HC MR1+ if (fadeIn && Utils.hasHoneycombMR1()) { // Use ViewPropertyAnimator to run a simple fade in + fade out animation to update the // ImageView imageView .animate() .scaleY(0.95f) .scaleX(0.95f) .alpha(0f) .setDuration(imageView.getDrawable() == null ? 0 : HALF_FADE_IN_TIME) .setListener( new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { imageView.setImageBitmap(bitmap); imageView .animate() .alpha(1f) .scaleY(1f) .scaleX(1f) .setDuration(HALF_FADE_IN_TIME) .setListener(null); } }); } else if (fadeIn) { // Otherwise use a TransitionDrawable to fade in Drawable initialDrawable; if (imageView.getDrawable() != null) { initialDrawable = imageView.getDrawable(); } else { initialDrawable = transparentDrawable; } BitmapDrawable bitmapDrawable = new BitmapDrawable(resources, bitmap); // Use TransitionDrawable to fade in final TransitionDrawable td = new TransitionDrawable(new Drawable[] {initialDrawable, bitmapDrawable}); imageView.setImageDrawable(td); td.startTransition(Utils.ANIMATION_FADE_IN_TIME); } else { // No fade in, just set bitmap directly imageView.setImageBitmap(bitmap); } }