Adsence

martes, 24 de septiembre de 2013

Uso de la cámara con android

Leave a Comment
Visita nuestra nueva pagina aqui: http://jamper91.byethost7.com/


El dia de hoy les traigo una guía sobre como usar la cámara implementado la API de android, para esto trate de recurrir a la documentación oficial de Android (http://developer.android.com/guide/topics/media/camera.html) pero tuve ciertos problemas, por lo que acudí a la gran G, para buscar soluciones.

Este pequeño ejemplo lo que hace es utilizar la cámara para tomar la foto y luego nos muestra la ruta donde queda alojada en nuestro dispositivo.




Para empezar creamos una aplicacion comun y corriente y le damos el nombre que deseamos, tras crear la aplicacion simplemente añadimos un boton y un textview al layout de nuestra aplicacion para que quede de la siguiene manera



Recuerden que pueden renombrar el id del boton y del TextView como deseen en mi caso los renombre de la siguiente manera:



Ahora lo siguiene que haremos sera determinar que hacer cuando se haga clic en el boton btnCamera, para este ejemplo en especifico llamaremos a una funcion que se encargara de iniciar la camara, para poder conseguir este objetivo agregamos una linea en el xml del boton, en concreto la linea "android:onClick"



Ahora nos falta algo muy importate, que es editar los permisos, en concreto los permisos es decirle al sistema operativo que nos permita acceder a algunos recursos del sistema, como lo son la camara, el internet, los datos, los contactos, etc. Para este tutorial usaremos 2, el permiso para escribir ( para poder guardar las fotos) y del uso de la camara, si no sabes como agrega los permisos, puedes seguir estos pasos:
  1. Escojemos el proyeto
  2. Abrimos el Manifiesto
  3. Buscamos la pestaña XML
  4. Escribimos los permisos


Tras lo anterior, ahora podemos manipula el codigo que nos permitira hacer lo anteriormente prometido.

1. Primero debemos agregar unas variables GLOBALES a nuestra aplicacion


  • photoPath: Es la encargada de almacenar la ruta donde se encuentra nuestra foto recien capturada
  • REQUEST_CAMERA: Nos permira determinar para que vamos a usar nuestra camara, en este tutorial sera para tomar fotos (pero puede ser para almacenar videos)
2. Editamos el codigo de la funcion que es llamada cuando oprimimos el boton btnCamera


No soy un experto en android, y si lo que acabo de explicar no les convence, o esta erroneo, estoy abierto a sugerencias para poder mejorar
  • Donde, como en casos anteriores, esta funcion debe recibir un objeto del tipo View, y que luego lo utilizamos en el "switch" para determinar cual objeto llamo a esa funcion, en caso de que fuese el boton "btnCamera" se realizara todo lo que se encuentre en el "case"
  • state: nos permite determinar el estado actualdel medio de almacenamieno externo
  • Environment.MEDIA_MOUNTED.equals(state): Aqui preguntamos si el dispositivo se encuentra correctamente montado y si esta listo para escritura/lectura
  • captureTime: Es un valor que usamos para que el nombre de las fotos no se repita
  • photoPath: almacenamos la localiacion de la foto
  • intent: (Explicacion de intent aqui) creamos un nuevo intent donde especificamos que deseamos usar la camara en modo de captura de imagen (tambien puede ser en video)
  • photo: creamos un nuevo archivo con la ruta de la imagen anteriormente tomada
  • intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(photo)): agregamos unos "datos, variables" al intente anteriormente creado
  • Por ultimo iniciamos el intent, es decir iniciamos la camara para poder tomar la foto
3. Ahora debemos verificar que no a ocurrido a ningun error y estar atentos a lo que nos pudo responder la camra


  • En la primera linea simplemente creamos un objeto del tipo textView para poder mostrarle al usuario donde es la ruta de la foto creada
  • Como esta respuesta puede provenir de diferentes fuentes, la incluimod dentro de un "switch" y verificamos que sea del tipo REQUEST_CAMERA ( es decir del tipo tomar foto -esta variable la creamos globalmente)
  • Si la ruta no esta vacia y si es diferente de null, la mostramos en pantalla
Eso es todo, ya esta nuestra aplicacion funcionando



Descargar: SkyDrive

0 comentarios :