Мое предложение сначала сохранить изображение, которым вы хотите поделиться, затем передать uri
Ссылка: Поделиться изображением с другими приложениями
Попробуйте что-то подобное
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
shareIntent.setType("image/*");
// For a file in shared storage. For data in private storage, use a ContentProvider.
Uri uri = Uri.fromFile(getFileStreamPath(pathToImage));
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(shareIntent)
Если вы хотите поделиться им через папку ресурсов, вам придется использовать ContentProvider.Посмотрите этот ответ о том, как это сделать:
https://stackoverflow.com/a/7177103/1369222
ИЛИ
Добавить провайдер файлов в Android Manifest
<provider
android:name="android.support.v4.content.FileProvider"
android:grantUriPermissions="true"
android:exported="false"
android:authorities="${applicationId}">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths"/>
file_provider_paths.xml
<paths>
<cache-path name="cache" path="/" />
<files-path name=”files” path=”/” />
</paths>
См. То Как использовать поддержку FileProvider для обмена контентом с другими приложениями?