Compartir la URL de la imagen con otras aplicaciones instaladas en el sistema móvil Android – Ashwini Jadhav

Habrá muchas respuestas en SO. Algunas respuestas funcionarán y otras no. Para descargar una imagen de una URL, necesitamos crear una URI a partir del archivo descargado.

Si utiliza Diapositiva Para recuperar una imagen de una URL, puede hacer esto de la siguiente manera:

Glide.with(context).asBitmap().load(photoUrl)
.into(object: CustomTarget<Bitmap>() {

override fun onLoadCleared(placeholder: Drawable?) {
// do your stuff, you can load placeholder image here
}

override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {

val cachePath = File(context.cacheDir, "images")
cachePath.mkdirs() // don't forget to make the directory
val stream = FileOutputStream(cachePath.toString() + "/image.png") // overwrites this image every time
resource.compress(Bitmap.CompressFormat.PNG, 100, stream)
stream.close()

val imagePath = File(context.cacheDir, "images")
val newFile = File(imagePath, "image.png")
val contentUri: Uri = FileProvider.getUriForFile(context, "${BuildConfig.APPLICATION_ID}.provider", newFile)

val intent = Intent(Intent.ACTION_SEND)
intent.type = "image/*"
intent.putExtra(Intent.EXTRA_STREAM, contentUri)
context.startActivity(Intent.createChooser(intent, "Choose..."))

}
})

añadir provider en el manifiesto:

<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>

cree un nuevo archivo fuente llamado xml en res. En res, cree un nuevo archivo llamado provider_paths: – –

<paths xmlns:android="http://schemas.android.com/apk/res/android">
<cache-path name="cache" path="/" />
</paths>

Entonces has terminado 🙂 – –

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *