Question: I am trying to load an image from a URL into an `ImageView` using Picasso.

The image for the shared transition is inside a `CardView` in a `RecyclerView` and the second it just in a LinearLayout.
The first time the request is made the element doesn't animate as picasso needs to load the image into the view, but on subsequent requests it is fine.

How can I ensure that the `ImageView` has been successfully populated before initiating the transition?

Answer: 
If you want to avoid the effect caused by postponing the enter transition, you can force Picasso to use whatever it already has in cache:

```
Target target = new Target() {
      @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
        this.imageView.setImageBitmap(bitmap);
      }
      @Override public void onBitmapFailed(Drawable errorDrawable) {}
      @Override public void onPrepareLoad(Drawable placeHolderDrawable) {}
};
Picasso.with(context)
       .load(url)
       .networkPolicy(NetworkPolicy.OFFLINE)
       .into(target);

```

By passing a `Target` instance rather than your `ImageView` one, you'll be forcing Picasso to deliver whatever it has cached for that URL. If you pass the `ImageView` instead, you won't get the image loaded immediately.

Please note that you should hold your target object in a member variable, since it is held as a weak reference by Picasso, so you don't want it to be garbage collected.
You can replace Picasso with Universal Image Loader which deals pretty well with this problem 

```
DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(drawable) 
                .showImageForEmptyUri(emptyDrawable) 
                .showImageOnFail(errorDrawable) 
                .resetViewBeforeLoading(false)  
                .cacheInMemory(true) 
                .cacheOnDisk(true) 
                .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
                .build();
        imageLoader.displayImage(url, iv, options);

```