Clase#12
Curso Android
UTN Marzo 2015
Mostrar una foto desde la galería o
desde la cámara
● Diseñamos una interfaz con un imageView y dos
botones.
● Definimos dos constantes para identificar la
cámara y la galería.
● Añadimos los permisos necesarios para usar la
cámara y la tarjeta de memoria
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission android:name="android.permission.CAMERA" />
Mostrar una foto desde la galería o
desde la cámara
● Seteamos los eventos de ambos botones:
1. Cámara:
Intent action = new
Intent("android.media.action.IMAGE_CAPTURE");
action.putExtra(MediaStore.EXTRA_OUTPUT,MediaStore.Images.M
edia.EXTERNAL_CONTENT_URI.toString());
startActivityForResult(action, CAMERA_REQUEST);
Mostrar una foto desde la galería o
desde la cámara
● Seteamos los eventos de ambos botones:
2. Galería:
Intent photoPickerIntent = new
Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, PICKER_GALLERY);
Mostrar una foto desde la galería o
desde la cámara
● Trabajamos sobre el onActivityResult y consultamos de
donde viene y su resultado
if ((requestCode == CAMERA_REQUEST) && (resultCode==
RESULT_OK))
{
//do-stuff
}
if ((requestCode == PICKER_GALLERY) && (resultCode==
RESULT_OK))
{
//do-another-stuff
}
Mostrar una foto desde la galería o
desde la cámara
● Procesar una imagen desde la cámara
Bitmap photo = (Bitmap) data.getExtras().get("data");
System.gc();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 70, baos);
imageView_result.setImageBitmap(photo);
System.gc();
baos.close();
baos=null;
Mostrar una foto desde la galería o
desde la cámara
● Procesar una imagen desde la galería
Uri chosenImageUri = data.getData();
Bitmap photoBitMap = Media.getBitmap(this.getContentResolver(),
chosenImageUri);
System.gc();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photoBitMap.compress(Bitmap.CompressFormat.JPEG, 70, baos);
imageView_result.setImageBitmap(photoBitMap);
System.gc();
baos.close();
baos=null;
Mostrar una foto desde la galería o
desde la cámara
● Dado un bitmap, guardarlo en la SDCard:
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
myDir.mkdirs();
String fname = "Image.jpg";
File file = new File (myDir, fname);
if (file.exists ()) file.delete ();
FileOutputStream out = new FileOutputStream(file);
photo.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
Mostrar una foto desde la galería o
desde la cámara
● Recuperar imagen de la SDCard
String root = Environment.getExternalStorageDirectory().toString();
String fname = "Image.jpg";
File file = new File(root + "/saved_images/"+fname);
if (file.exists ())
{
imageView.setImageBitmap(BitmapFactory.decodeFile(file.getAbsolu
tePath()));
}
TP Fotos
1. Cargar (futbolistas, empleados, alumnos) con
foto o imagen de la galería.
2. Mostrar en una lista.
3. Mostrar y editar un elemento viniendo de la
lista.
4. Reutilizar pantalla y código de agregar/editar.
5. Puede ser grupal.
Descargar

Clase #12