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  
Viejo 09/10/11, 10:59:27
Avatar de Thatiro
Thatiro Thatiro no está en línea
Usuario novato en la web
Mensajes: 12
 
Fecha de registro: oct 2011
Mensajes: 12
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Llamar a la cámara

Hola a todos,
estoy haciendo una app donde tengo que llamar a la cámara y que esta me devuelva la foto. Esto lo he logrado pero con un problema, y es que resulta que llamo a la cámara, hago la foto, y luego me sale si quiero guardarla o descartarla; me gustaría saber si es posible obviar este paso y que mi app llame a la cámara, el usuario haga la foto y sea inmediatamente devuelta a la aplicación.
Gracias!!
Responder Con Cita


  #2  
Viejo 17/02/12, 19:36:15
Avatar de Naby
Naby Naby no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: feb 2012
Mensajes: 2
Tu operador: TELCEL
Mencionado: 0 comentarios
Tagged: 0 hilos
problemas con la camara

Hola

Soy nueva en estro de la programación Android y espero que me puedas ayudar yo estoy queriendo realizar una aplicación que después de que tome la fotografía me la muestre y me la adjunte a un mms o correo electrónico pero solo llego a la toma de la foto, te agradeseria mucho que me pudieras ayudar.

Gracias de antemano.
Responder Con Cita
  #3  
Viejo 17/02/12, 20:08:50
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Deberías haber creado un hilo nuevo en lugar de responder en 2 hilos que nada tienen que ver con tu pregunta, solo que también está relacionada con la cámara. Pero te contesto aquí, el otro hilo lo dejo sin contestar.

¿Cómo has tomado la foto? ¿Directamente con el programa o llamando a la cámara creando un nuevo Intent con un OnActivityResult?

¿Consigues que la foto aparezca en el programa?
Responder Con Cita
  #4  
Viejo 17/02/12, 21:40:50
Avatar de Thatiro
Thatiro Thatiro no está en línea
Usuario novato en la web
Mensajes: 12
 
Fecha de registro: oct 2011
Mensajes: 12
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por Naby Ver Mensaje
Hola

Soy nueva en estro de la programación Android y espero que me puedas ayudar yo estoy queriendo realizar una aplicación que después de que tome la fotografía me la muestre y me la adjunte a un mms o correo electrónico pero solo llego a la toma de la foto, te agradeseria mucho que me pudieras ayudar.

Gracias de antemano.
Bueno, según he ido descubriendo, tienes dos opciones hacer la cámara embebed dentro de la aplicación que es más complicado pero se puede personalizar, o llamar a la aplicación cámara del dispositivo y que luego se te devuelva la fotografía.
Para la primera opción tienes este ejemplo que funciona bien --> http://developer.android.com/resourc...raPreview.html

Del otro no guardo ningún ejemplo porque me decante por la primera, pero buscando Cámara onActivityResult tendría que haber muchos.
Responder Con Cita
  #5  
Viejo 17/02/12, 21:59:03
Avatar de Thatiro
Thatiro Thatiro no está en línea
Usuario novato en la web
Mensajes: 12
 
Fecha de registro: oct 2011
Mensajes: 12
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Deberías haber creado un hilo nuevo en lugar de responder en 2 hilos que nada tienen que ver con tu pregunta, solo que también está relacionada con la cámara. Pero te contesto aquí, el otro hilo lo dejo sin contestar.

¿Cómo has tomado la foto? ¿Directamente con el programa o llamando a la cámara creando un nuevo Intent con un OnActivityResult?

¿Consigues que la foto aparezca en el programa?
Al final lo hice directamente con el programa porque aparte de ser más personalizable, está más integrado en la aplicación y no tener que llamar a una app externa como la Cámara. Es más difícil pero con el ejemplo se entiende:
http://developer.android.com/resourc...raPreview.html

La foto la consigues en formato jpeg, porque en raw de momento por lo que tengo entendido no deja [IMG]file:///C:/Users/Albert/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/IMG], llamando ha:
Código:
takePicture(shutterCallback, null,jpegCallback);
Esto devuelva la foto ha :
Código:
PictureCallback jpegCallback = new PictureCallback() 
    { 
        public void onPictureTaken(byte[] data, Camera camera) {
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, bmpFactoryOptions);
}
    };
Y alli con el bmp haces lo que quieras ya, mostrarlo por un imageview, hacer alguna operación con matrices, etc...

Espero que sirva de algo
Saludos!!
Responder Con Cita
  #6  
Viejo 18/02/12, 09:56:12
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por Thatiro Ver Mensaje
Al final lo hice directamente con el programa porque aparte de ser más personalizable, está más integrado en la aplicación y no tener que llamar a una app externa como la Cámara. Es más difícil pero con el ejemplo se entiende:
http://developer.android.com/resourc...raPreview.html

La foto la consigues en formato jpeg, porque en raw de momento por lo que tengo entendido no deja [IMG]file:///C:/Users/Albert/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif[/IMG], llamando ha:
Código:
takePicture(shutterCallback, null,jpegCallback);
Esto devuelva la foto ha :
Código:
PictureCallback jpegCallback = new PictureCallback() 
    { 
        public void onPictureTaken(byte[] data, Camera camera) {
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, bmpFactoryOptions);
}
    };
Y alli con el bmp haces lo que quieras ya, mostrarlo por un imageview, hacer alguna operación con matrices, etc...

Espero que sirva de algo
Saludos!!
El problema que tiene eso, y sobre todo en su versión más sencilla que es la que has puesto, es que dependiendo del móvil o tablet, incluso de su orientación, la foto puede salir girada 90º o incluso 180º. Así que hay que hacer una configuración inicial (repito, que depende del dispositivo) desde que creas el objeto de la cámara hasta que la muestras en el preview.

Luego una vez tomada, en el callback, puede ocurrir que también salga girada 90º respecto al preview (repito, que depende de cada móvil), así que hay que postprocesar para que la ponga bien.

La información de si tienes que girarla en el callback es fácil, solo hay que comparar el width de la preview y el width del resultado, si no son iguales es que salió girada. Pero la información para el preview sólo la puedes sacar si el móvil tiene Froyo, si tiene Eclair o anterior no podrás. Por eso mismo yo pasé de tomarla desde la aplicación a que fuese la aplicación de cámara del propio móvil el que lo gestionase, porque así además podrás tomar fotos con la cámara frontal en Froyo y anteriores, cosa que gestionandolo tu no puedes hacer porque el cambio de cámara es solo a partir de GB.
Responder Con Cita
  #7  
Viejo 18/02/12, 10:14:29
Avatar de Thatiro
Thatiro Thatiro no está en línea
Usuario novato en la web
Mensajes: 12
 
Fecha de registro: oct 2011
Mensajes: 12
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
El problema que tiene eso, y sobre todo en su versión más sencilla que es la que has puesto, es que dependiendo del móvil o tablet, incluso de su orientación, la foto puede salir girada 90º o incluso 180º. Así que hay que hacer una configuración inicial (repito, que depende del dispositivo) desde que creas el objeto de la cámara hasta que la muestras en el preview.

Luego una vez tomada, en el callback, puede ocurrir que también salga girada 90º respecto al preview (repito, que depende de cada móvil), así que hay que postprocesar para que la ponga bien.

La información de si tienes que girarla en el callback es fácil, solo hay que comparar el width de la preview y el width del resultado, si no son iguales es que salió girada. Pero la información para el preview sólo la puedes sacar si el móvil tiene Froyo, si tiene Eclair o anterior no podrás. Por eso mismo yo pasé de tomarla desde la aplicación a que fuese la aplicación de cámara del propio móvil el que lo gestionase, porque así además podrás tomar fotos con la cámara frontal en Froyo y anteriores, cosa que gestionandolo tu no puedes hacer porque el cambio de cámara es solo a partir de GB.
Gracias por la info, tampoco me preocupa mucho esto de momento porque la app es para un trabajo de la universidad y en teoría con que funcione en mi móvil bastaría, aunque claro que la idea sería publicarla en un futuro. Otro aspecto por el que no quiero llamar a la App de Cámara es que mi aplicación es para personas con problemas de visión, por eso prefiero gestionar yo ciertas cosas que con la app de la Camara, según tengo entendido, no puedo(como que pulsando en cualquier parte de la pantalla haga la foto).
Saludos!!
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 22:07:41 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007