Glide preload only works if size is specified
<p>I have an app with a long feed of images. I want to preload the upcoming images so the users sees less (ideally no) delay when the images come on screen.</p>

<p>I've been trying different variants of preload() and downloadOnly(), and the only combination that seems to work is having both preload and load use the exact same size parameters.</p>

<p>Preloading:</p>

<pre><code>Glide.with(AbstractFeedFragment.this)                                               
    .load(picture.getUrl())
    .diskCacheStrategy(DiskCacheStrategy.ALL)
    .preload();
</code></pre>

<p>The preload() here is the same as using preload(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)</p>

<p>Loading the actual image into the ImageView when it comes on screen:</p>

<pre><code>requestManager
    .load(url)
    // Use the same dimensions used as when preloading.
    .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
    .placeholder(placeholderColor)
    .error(R.color.image_fallback_bg)
    .dontTransform()
    .into(imageView);
</code></pre>

<p>If I remove the override or dontTransform methods, the image gets downloaded a second time when it comes on screen (even though I just preloaded it).</p>

<p>Am I doing something wrong? My understanding was that DiskCacheStrategy.ALL would place the original image in the cache, which would then be retrieved and resized when displaying it for real. </p>

<p>Is there a way to load the image without having the specify the SIZE_ORIGINAL when actually displaying it? If I understand it correctly this means I am now displaying the image at full size instead of at the correct size for my ImageView. </p>