|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Problema con intent para compartir imagenes
Hola soy novato en programación estudio java y android, y estoy haciendo un pequeño programa es un visor de fotos, compuesto por unas cuantas imágenes y tres botones,
derecha izquierda y compartir. Bien el problema es el boton compartir tengo las imágenes en un array las imágenes se visualizan en un imageView,y las tengo listadas en un array, y aquí viene el problema como llamo a la imagen que esta en ese momento en el imageView. hay ejemplos que dicen como compartir una imagen pero desde un directorio en concreto y una imagen en concreto y eso no me sirve, otra cosa e visto que hay que poner una Uri y no se que poner ImageView foto; int[] fotoId = {R.drawable.rajo,R.drawable.f1, R.drawable.f2,R.drawable.f3, R.drawable.f4,R.drawable.f5}; int i = 0; int total; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ///////////////////////////////////// Button derecha = (Button)findViewById(R.id.btnDe); Button izquierda = (Button)findViewById(R.id.btnIz); Button compartir = (Button)findViewById(R.id.btnCom); derecha.setOnClickListener(this); izquierda.setOnClickListener(this); compartir.setOnClickListener(this); foto = (ImageView) findViewById(R.id.imageView1); total = fotoId.length; // Esta es la parte donde estoy atascado Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); //esto es la accion enviar shareIntent.putExtra(Intent.EXTRA_STREAM,uri);//aqui no se cual es la uri shareIntent.setType("image/jpeg"); //esto es es tipo que quiero compartir startActivity(Intent.createChooser(shareIntent, (CharSequence) getResources())) Os agradecería que echarais una mano a este novato, gracias |
|
#2
|
||||
|
||||
Tienes que coger la imagen que tienes en el ImageView, convertirla a Bitmap, guardarla en disco y luego usar la ruta como URI, por partes:
Bitmap imagen = ((BitmapDrawable) foto.getDrawable()).getBitmap(); FileOutputStream fichero = new FileOutputStream(Environment.getExternalStorageDir ectory() + "/imagen.jpg"); imagen.compress(Bitmap.CompressFormat.JPEG, 80, fichero); Uri uri = Uri.parse(Environment.getExternalStorageDirectory( ) + "/imagen.jpg"); Ahora sobre el código de arriba, tendrás que poner IOException en algunos sitios y en la línea del "Uri.parse...." en algunas aplicaciones con las que compartas con algunos móviles te fallará, es debido a que algunas aplicaciones requieren que la Uri tenga "file://" al principio (otras no es necesario), por ejemplo creo que con Facebook no hace falta y con WhatsApp si, o al revés, ahora mismo no lo recuerdo bien lo hice hace algunos meses. Y en algunos móviles el Environment.getExternalStorageDirectory() incluye el "file://" y en otros no. Yo al final lo solucioné comparando si Environment.getExternalStorageDirectory() no comenzaba con "file://", y en ese caso lo añado por delante, y si lo incluye no añado nada. |
#3
|
||||
|
||||
Muchas gracias kriogeN probare tu ejemplo haver que tal resulta.
|
#4
|
||||
|
||||
Pues sigo igual que estaba no me envia la foto que esta en ese momento en el visor
Intent share = new Intent(Intent.ACTION_SEND); share.setType("image/*"); share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://com.std.pruebashare/drawable/" + Integer.toString(R.drawable.f1))); startActivity(Intent.createChooser(share, "Share Image")); este codigo funciona pero esta limitado a la imagen que tu le digas, por eso tampoco me sirve, tiene que ser la que este visualizandose en ese momento en el imageview , gracias de todas formas |
#5
|
||||
|
||||
Supongo que usaras
Código:
int i = 0; pues Código:
Intent share = new Intent(Intent.ACTION_SEND); share.setType("image/*"); share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://com.std.pruebashare/drawable/" + Integer.toString( fotoId[i] ))); startActivity(Intent.createChooser(share, "Share Image")); Espero que te sirva
__________________
Controlador de Medicamentos 1.5 (https://play.google.com/store/apps/d...mentcontrolled)
Legislación Basica Española 1.1 (https://play.google.com/store/apps/d...islacionbasica) |
#6
|
||||
|
||||
muchas gracias jtsamper es lo que estaba buscando, llevo poco estudiando java, 3 meses y 2 semanas en android ósea me queda muchísimo que estudiar,
bueno gracias de nuevo , aun me queda mucho que aprender. Nota: comparte las fotos bien, menos en facebook que no la envia alguna idea. ![]() ![]() Última edición por sadelta Día 06/02/14 a las 20:11:06. |
#7
|
||||
|
||||
Buen día Sadelta.
Podrías compartirme tu código final por favor es que estoy buscando algo muy similar a lo que tu has logrado programar, no dudando de tu invaluable apoyo de antemano; Gracias. Saludos cordiales... http://luisfloresr.blogspot.mx |
![]() |
![]() |
||||||
|