Picassoで読み込んでキャッシュをShareCompatで共有するのがよさそう
public void shareImage(String url, final AppCompatActivity activity) { Picasso.get().load(url).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { Uri bmpUri = getLocalBitmapUri(bitmap, activity); if (bmpUri != null) { ShareCompat.IntentBuilder builder = ShareCompat.IntentBuilder.from(activity); builder.setStream(bmpUri); builder.setType("image/*"); builder.startChooser(); } } @Override public void onBitmapFailed(Exception e, Drawable errorDrawable) { } @Override public void onPrepareLoad(Drawable placeHolderDrawable) { } }); }