Una de las posibilidades que nos ofrece Xamarin es acceder a los componentes del dispositivo con nuestra aplicación. En este pos explicaré los paso que podremos seguir para acceder a la galería de imágenes y a la cámara del dispositivo con Xamarin.Forms.

Lo primero que deberemos hacer será instalar en nuestra solución Xamarin.Forms portable el Nu-Get de Xam.Plugin.Media, este Nu-Get no proporcionara las clases necesarias para acceder a la galería y cámara de una manera muy sencilla.

Después de haberlo instalado, en el code behind de la vista donde queramos añadir una de estas funcionalidades , en el método al que va a llamar el botón que lance el evento. Lo primero que haremos será hacer este método asíncrono ya que el método que usaremos para sacar la foto es asíncrono, después deberemos configurar las opciones de almacenamiento para eso crearemos una nueva instancia de la clase StoreCameraMediaOptions indicándole si queremos que se guarde la imagen en la galería del dispositivo, el nombre de la imagen, etc… Luego en una variable guardaremos el resultado de la llamada al método TakePhotoAsync() al cual le pasaremos las opciones de almacenamiento. Si quremos mostra en nuestra aplicación la foto que acabamos de tomar en ese mismo método le deberemos cambiar el atributo source al elemento image de nuestra vista, a ese atributo le tendremos que pasar el stream que contendrá la variable anteriormente creada.

Si lo que queremos es sacar una foto guardada en la galería del dispositivo lo que hacemos sera cambiar el método TakePhotoAsync() por el método PickPhotoAsync() , a éste no hará falta pasarle las opciones de almacenamiento. Antes de pasarle el stream al atributo source deberemos comprobar de que la variable en la que guardamos el resultado del método PickPhotoAsync() no sea nula.

Y así es como desde nuetra aplicación Xamarin.Forms podemos acceder a la galería y cámara del dipositivo.

 

 

Gabriel González Santander Natera