En el primer capГtulo del curso aprendimos an edificar un lector de feeds sencilla; el segundo capГtulo fue referente a UI en Android y no ha transpirado aumentar la funcionalidad de un lector de feeds; en el tercer capГtulo trabajaremos con el hardware de los telГ©fonos y empezaremos con el manejo de la cГЎmara.
Demostrar la forma de la cГЎmara o de la exposiciГіn
La empleo que realizaremos nos permitirГЎ enseГВ±ar una apariencia, podemos obtenerla desde la cГЎmara o desde la colecciГіn de el telГ©fono. Queremos que al acabar se vea asГ
Con una imagen cargada se verГЎ sobre la siguiente maneras
Orden original
Empezaremos descargando el cГіdigo que debe importarse hacia un esquema nuevo. Trabajaremos referente a un telГ©fono con Android asГВ como cГЎmara para ejecutar el ej de este crГіnica. Para el deployment hacia el telГ©fono es preciso que el organizaciГіn operativo lo reconozca desplazГЎndolo hacia el pelo Asimismo deberГa colocarse en el manifest como una hacienda de la calificativo el valor android debuggable=”true” .
La epГteto debe encalar de la sub siguiente forma
En la zona de croquis vamos a comendar con un RelativeLayout , el archivo /res/layout/main.xml debe estar de este modo
Esbozo
Trabajaremos con otra orden de elementos para el esbozo llamado RelativeLayout y agregaremos otros elementos de interfaz de cliente.
Nuestro esquema tendrГЎ un botГіn para obtener la apariencia un RadioGroup que contendrГЎ a 3 botones desplazГЎndolo hacia el pelo un ImageView. Las 3 botones serГЎn elegir de a donde proviene la imagen ya sea de la cГЎmara (como ojeada previa o como imagen completa) o sobre la colecciГіn.
El cГіdigo completo del layout es el siguente
Hemos orientado el botГіn hacia la derecha y el RadioGroup hacia la izquierda. Posteriormente el ImageView abajo de el RadioGroup.
El esbozo de interfaces sobre cliente en ocasiones se vuelve difГcil con eclipse por eso utilizaremos la Гєtil gratuita DroidDraw que posibilita exportar e importar archivos XML para seguidamente Гєnicamente colocarlos en el archivo sobre diseГ±o en eclipse, tambiГ©n goza de ejecutables de Windows, Linux asГВ como OS X.
Agregando cГіdigo de funcionalidad
Definimos 3 constantes, con 2 sobre ellas vamos a identificar la acciГіn realizada (coger una fotografГa o bien seleccionarla sobre la galerГa) asГВ como con la una diferente estableceremos un sustantivo para el archivo donde escribiremos la fotografГa sobre medida completo al tomarla.
El modo mГЎs simple de encaminarse fotografГas serГВa utilizar un intent con ACTION_IMAGE_CAPTURE , actividad que pertenece al Media Store y no ha transpirado despuГ©s sobrecargar el sistema onActivityResult para realizar alguna cosa con el archivo recibido sobre la cГЎmara.
En el interior del sistema onCreate asignaremos a la variable sobre instancia name y no ha transpirado despuГ©s vamos a trabajar sobre la acciГіn al click del botГіn. Este sustantivo, inicializado con la llamada a getExternalStorageDirectory() guardarГЎ un archivo en la postal SD de el telГ©fono asГВ como el archivo se llamarГЎ test.jpg cada ocasiГіn que grabemos la fotografГa sobre envergadura rotundo se en escribe.
Primeramente obtenemos los botones de forma total desplazГЎndolo hacia el pelo de colecciГіn para repasar su estatus mГЎs delante. DespuГ©s construimos un intent que serГВa necesario si accesamos la cГЎmara con la movimiento ACTION_IMAGE_CAPTURE , si accesamos la galerГa con la actividad ACTION_PICK . En el caso sobre la vista previa (thumbnail) nunca se precisa mГЎs que el intent, el cГіdigo e empezar la Activity adecuado. AsГ que inicializamos las variables intent y code con los valores imprescindibles de el caso del thumbnail asГ sobre ser el botГіn seleccionado nunca validamos nada en un if.
Asignamos el cГіdigo an adoptar fotografГa, este cГіdigo junto al intent se utilizarГЎn adelante Con El Fin De iniciar la Activity.
Si el chequeado serГВa el botГіn de vista previa nunca necesitamos adicionar sГіlo. Si el chequeado serГВa el botГіn sobre forma completa, aparte del intent y cГіdigo agregamos un URI de guardar allГЎ el efecto. En caso de que el chequeado es el sobre la museo necesitamos un intent asГВ como cГіdigo diferentes que asignamos en la resultado de el if.
Luego, con cualquier dispuesto iniciamos la Activity pertinente.
AdemГЎs, es obligatorio sobrecargar la acciГіn onActivityResult de indicar que queremos efectuar con la imagen recibida (ya sea de la cГЎmara o de la colecciГіn) una ocasiГіn ha sido seleccionada. SerГВa necesario repasar En Caso De Que la forma viene de la cГЎmara TAKE_PICTURE o de la museo SELECT_PICTURE .
En caso de que viene sobre la cГЎmara, verificamos si es una mirada previa o la foto completa
En el caso de la mirada previa, obtenemos el extra “data” de el intent y no ha transpirado lo mostramos en el ImageView
En el caso de la fotografГa total, a partir del nombre del archivo Ahora definido lo buscamos y no ha transpirado generamos el bitmap para el ImageView
Si quisiГ©ramos incluir esa fama en la museo, utilizamos un MediaScannerConnectionClient.
En caso de que viene de la exposiciГіn recibimos el URI sobre la imagen desplazГЎndolo hacia el pelo construimos un Bitmap a partir sobre un stream de bytes
En caso de que estamos usando la cГЎmara la mirada serГЎ de la sub siguiente forma
En caso de que estamos capturando de la galerГa serГЎ asГ
Descarga
Puedes descargar el cГіdigo de la aplicaciГіn completa y no ha transpirado utilitario en Trabajado con imГЎgenes (cГЎmara y no ha transpirado museo).
ConclusiГіn
Ingeniero en Sistemas, catedrГЎtico facultativo, educativo y no ha transpirado desarrollador de software, fundador de el conjunto sobre tecnologГas de G gle en Guatemala (GTUG), entusiasta por aplicaciones web (Ruby On Rails) y no ha transpirado mГіviles (Android) desde el 2011 un Elemental Geek.