¿Quieres compartir imagen con ACTION_SEND en Android Studio? En este artículo veremos cómo hacerlo de manera fácil y con un código de ejemplo, para que no te pierdas a la hora de compartir imágenes en Android Studio. Lo cierto es que es bastante sencillo, pero la primera vez que lo hacemos no porque contamos con poca documentación al respecto.
Cómo compartir imágenes en Android Studio
Si estás programando una aplicación en la que el usuario necesite compartir imágenes, este código te va a ser de utilidad porque te servirá para compartir imagen con ACTION_SEND en Android Studio. Para reutilizarlo, tan solo necesitarás lo siguiente:
- Un ImageView en tu layout. Es el que declaramos en (ImageView) con R.id.miniatura.
Código para compartir una imagen en Android Studio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
ImageView imagen; imagen = (ImageView) v.findViewById(R.id.miniatura); imagen.buildDrawingCache(); Bitmap bitmap = imagen.getDrawingCache(); /***** COMPARTIR IMAGEN *****/ try { File file = new File(itemView.getContext().getCacheDir(), bitmap + ".png"); FileOutputStream fOut = null; fOut = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); fOut.flush(); fOut.close(); file.setReadable(true, false); final Intent intent = new Intent(android.content.Intent.ACTION_SEND); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); intent.setType("image/png"); context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } |
En nuestro código, tenemos un layout con imágenes. Lo que hacemos, es convertirlas a bitmap para luego compartirlas. Podremos elegir el formato de compresión que queramos. Si no te funciona con context, puedes quitárselo, ya te explicamos en su momento cómo abrir Activity en un Recycler View.
Una manera cómoda de implementar esto, es usar un botón que implemente un onClick(), para cuando el usuario pulse se le abra un diálogo para compartir una imagen, entre otras opciones en el caso de que lo creamos conveniente. Si no sabes cómo hacerlo, puedes preguntarnos en los comentarios.
Resultado

Nos aparece WhatsApp porque es el que más hemos utilizado, y lo guarda como recientes. Podremos elegir cualquier otra aplicación que queramos, como bien vemos en la anterior lista. Y hablando de WhatsApp, ya te contamos cómo abrir WhatsApp desde una aplicación Android, por si te es útil.
¿Has conseguido compartir imagen con ACTION_SEND en Android Studio? Escríbenos si tienes dudas, pero esperamos que ese trocito de código te haya servido para compartir tus imágenes. No necesitarás que los usuarios las guarden previamente en la galería, por lo que es muy cómodo.
Hola Andrea… tengo la siguiente duda, en:
itemView.getContext().getCacheDir()
“itemView” ¿Qué es? me atrevo a preguntar si es un textview o imageview. Espero aclares mi duda de antemano; Gracias.
Ya analice el código Andrea y si es el ImageView que contiene la imagen a compartir… Pero ahora “context” no entiendo que es.
context.startActivity(intent);
Saludos…
Hola Luis! Context se usa para abrir un activity en un recycler view. Si tu clase no extiende de un Recycler view puedes eliminar todo lo que ponga context, y veras que funciona igual! Puede que aquí lo entiendas mejor https://androidstudiofaqs.com/tutoriales/abrir-activity-en-recyclerview-android-studio
Exacto amigo, tal y como dices. En este caso tenemos un recycler view (contenedor), e itemView es uno de los items.
Hola Andrea
Este código me ayudo bastante, pero tengo un problema.
Cuando elijo una imagen para compartir y luego el contacto, en ese momento decido dar atrás y elegir otra foto, ya después de haber elegido el contacto de nuevo me muestra la imagen anterior (primera ocasión) y no la nueva que elegí.
Soy nueva en esto.
Hola, gracias por la ayuda. Una pregunta ¿Como seria para que en lugar de una imagen fuese un audio?
Hola, gracias por la ayuda. Una pregunta
¿para mandar un mensaje a un telefono con whatsap que no esta en tus contactos ?
es que quiero poner un boton para contactar con un usuario y al presionar tome el numero del cel y lo abra en whatsap para contactar con el
Hola! lo tenía funcionando hace unos dias pero por algun motivo, sin darme ningun error aparente ya no se comparten los archivos.
¿Sabeis que puede ser?
Hola amigo, gracias por el tutorial, sin embargo al momento de compartir la imagen, mi app no hace nada, uso el Android 3.0, habrá algún problema con el código que suministras?
Gracias de antemano, soy nuevo en Android.
Hola esto es una buena contribución..pero tengo un problema en la parte del geDrawingCache me retorna null , me podrías enviar tu código por correo mgcfrank@gmail.com estaré muy agradecido
¿Como compartir y SIEMPRE preguntar a donde? no que qeude la selección por default. Por ejemplo una vez me pregunto le puso a whatsap y ahora SIEMPRE es a whatsap