-
Notifications
You must be signed in to change notification settings - Fork 1
Opciones de camara
Las fotos que saquemos con el proyecto anterior probablemente se vean enormes y no entren en la pantalla del dispositivo. Para corregir esto agregaremos un estilo CSS en el <head>
de la pagina.
Editar el archivo www/index.html
y agregar justo antes de cerrar </head>
:
<style>
.galeria img {
border: 1px solid #999;
max-width: 100%;
}
</style>
Esto hara que las imagenes (<img>
) dentro de un elemento que tenga la clase .galeria
no pueda ser mas ancho que el 100% del elemento.
Volver a correr la aplicacion para probar este comportamiento.
Combinando las distintas opciones de la camara podemos:
Para obtener fotos de la galeria hay que llamar a getPicture
proporcionando la opcion sourceType: Camera.PictureSourceType.PHOTOLIBRARY
.
Editamos nuevamente el archivo www/index.html
y agregamos un segundo boton:
<div data-role="footer" data-position="fixed">
<a href="#" id="sacarfoto" class="ui-btn ui-icon-camera ui-btn-icon-left">Sacar foto</a>
<!-- agregar este boton -->
<a href="#" id="elegirfoto" class="ui-btn ui-icon-grid ui-btn-icon-left">Importar foto</a>
</div>
Y luego editaremos www/js/index.js
. Necesitamos 3 modificaciones:
- Agregar un metodo que ejecute
getPicture
con la opcion necesaria - Agregar un
successCallback
que, a diferencia del anterior, recibira la URI del archivo de foto. - Escuchar el evento
click
en el boton agregado#elegirfoto
y llamar al metodo del primer punto. Esto lo haremos dentro de la funcioninitialize
.
initialize: function(){
//...
$('#elegirfoto').on('click', camara.buscarFoto);
},
buscarFoto: function(){
var opciones = {
sourceType: Camera.PictureSourceType.PHOTOLIBRARY
}
navigator.camera.getPicture(camara.onFileUriSuccess, camara.onError, opciones);
},
onFileUriSuccess: function(imageData) {
$('.galeria img').first().attr('src',imageData);
},
Editar el archivo www/js/index.js
, agregar un nuevo metodo con las opciones:
guardarFoto: function(){
var opciones = {
destinationType: Camera.DestinationType.NATIVE_URI,
saveToPhotoAlbum: true
}
navigator.camera.getPicture(camara.onFileUriSuccess, camara.onError, opciones);
},
Nuevamente necesitaremos un boton extra en la aplicacion. Agregar en el footer de la pagina:
<a href="#" id="guardarfoto" class="ui-btn ui-icon-heart ui-btn-icon-left">Guardar foto</a>
Al especificar ancho y alto, la aplicacion deberia llevarnos por un paso mas donde podremos cortar la foto.
Misma rutina: un boton en el footer de index.html
, un metodo en al cual llamaremos en index.js
y asignar al evento click
del boton agregado la llamada al nuevo metodo:
index.js
//dentro de la funcion initialize:
$('#cropearfoto').on('click', camara.cropearFoto);
//
cropearFoto: function() {
var opciones = {
destinationType : Camera.DestinationType.DATA_URL,
targetWidth: 100,
targetHeight: 100
}
navigator.camera.getPicture(camara.onDataUrlSuccess, camara.onError, opciones);
},
index.html
<a href="#" id="cropearfoto" class="ui-btn ui-icon-edit ui-btn-icon-left">Cropear foto</a>
Hasta ahora solo cambiamos el src
de la imagen que tenemos en la aplicacion. Tambien podemos ir agregando fotos.
Modificamos el callback onDataUrlSuccess
y cambiamos su codigo para insertar un <img>
cada vez:
onDataUrlSuccess: function(imageData) {
var img = $('<img />');
img.attr('src',"data:image/jpeg;base64," + imageData);
img.appendTo('.galeria');
}
- Repaso y conceptos basicos
- Ejercicios para repasar
- Problematica de desarrollo mobile
- Phonegap
- Requerimientos e instalacion
- Phonegap CLI
- [Primeros ejercicios con Phonegap](Ejercicio Phonegap)
- Plugins
- Hello world
- Estructura de un proyecto Phonegap
- Plugin Device
- Debugging
- Incorporando un framework CSS
- Plugin Vibration
- Sumando partes
- Plugin Battery Status
- Un poco de jQuery
- jQuery Mobile
- Navegacion
- Plugin Dashboard
- Revision de Plugin Dashboard
- Paginas extra
- ToDo
- Persistencia
- ToDo Persistente
- Plugin Camera
- Opciones de camara
- App Mi Galeria
- Revision de Galeria
- Plugin File
- Escribir y leer texto
- Escribir archivos binarios
- Guardando fotos
- Debugger: weinre
- Inspeccionar con weinre
- Phonegap Developer App
- Refactor de apps
- Plugin Media
- Pruebas con audio
- Control y monitoreo de audio
- Encapsular play/pausa
- Hacks
- Formato de tiempos
- Grabar y reproducir
- Proyecto Integrador
- Revision de interfaz
- Interfaz basica
- Entrevista: modelo
- Funcionalidad: revision
- Seleccion de framework
- iRec: navegacion
- iRec: fileApi
- iRec: guias
- iRec: entrevistas
- iRec: recordApi
- iRec: helpers
- iRec: mediaApi
- iRec: inicializar paginas
- iRec: refactor
- iRec: mediaApi refactor
- iRec: recordApi refactor
- iRec: helpers
- iRec: guias.js
- iRec: entrevistas.js
- iRec: crear guias
- iRec: re-inicializando
- iRec: re-ordenando
- iRec: pendientes
- iRec: reporte ux
- iRec:revision: volver
- iRec:entrevista: volver
- iRec:revision: cambios
- iRec:revision: stop
- iRec:revision: Rew 10"
- iRec:revision: tag Go
- iRec: limpieza
- Firma de apps
- Android
- Generacion de key
- Firma de apk
- Alineacion de zip
- Firmar con Phonegap
- iOS
- Detalles finales
- Config.xml
- Iconos
- Splash