private static ImageLoader create(
      Context context,
      ImageProvider imageProvider,
      ImageTaskExecutor imageTaskExecutor,
      ImageReSizer imageReSizer,
      ImageLoadHandler imageLoadHandler) {

    if (imageProvider == null) {
      imageProvider = getDefaultImageProvider(context);
    }

    if (imageTaskExecutor == null) {
      imageTaskExecutor = DefaultImageTaskExecutor.getInstance();
    }

    if (imageReSizer == null) {
      imageReSizer = DefaultImageReSizer.getInstance();
    }

    if (imageLoadHandler == null) {
      imageLoadHandler = new DefaultImageLoadHandler(context);
    }
    ImageLoader imageLoader =
        new ImageLoader(context, imageProvider, imageTaskExecutor, imageReSizer, imageLoadHandler);

    if (sImageDownloader != null) {
      imageLoader.setImageDownloader(sImageDownloader);
    }
    return imageLoader;
  }