VOCÊ ESTÁ EM: Home > Radar > Dica do Dia > Android Development – Carregar Imagem da Galeria ou Câmera
Android Development – Carregar Imagem da Galeria ou Câmera
13/10/2014

androiddev-300x15711111

Tanto para carregar uma imagem da Câmera quanto da Galeria de imagens do Android você pode usar Intenções padrão do sistema.

Para capturar facilmente uma imagem com a câmera, basta que na sua Activity você utilize o código da Listagem-1. Já para buscar uma imagem na galeria ou utilizando um outro gerenciador de imagens que você tenha instalado no sistema, basta usar o código da Listagem-2. Para ambos os casos, você deverá implementar um callback sobrescrevendo o método onActivityResult da sua Activity para permitir receber o retorno de qualquer um dos métodos que você escolher.

Listagem-3 demonstra como realizar o callback.

Listagem-1: capturando imagem da câmera.

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, 5678);

Listagem-2: capturando imagem da galeria.
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Selecione uma imagem"), 1234);

Listagem-3: callback na Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if(requestCode == 1234 && resultCode == RESULT_OK){
     //imagem veio da galeria

     Uri uriImagemGaleria = data.getData();

     String caminho = "";

     String[] projection = { MediaStore.Images.Media.DATA };
     Cursor cursor = managedQuery(uri, projection, null, null,   null);
     if( cursor != null ){
          int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
          cursor.moveToFirst();
          return cursor.getString(column_index);
     }
     caminho = uri.getPath();
     caminho = getPath(uriImagemGaleria);

     Bitmap bitmap = BitmapFactory.decodeFile(caminho);
     iv.setImageBitmap(bitmap);
  }
  else if(requestCode == 5678 && resultCode == RESULT_OK){
     //imagem veio da camera
     Bundle extras = data.getExtras();
     Bitmap imagem = (Bitmap) extras.get("data");

     iv.setImageBitmap(imagem);
  }
}

Quer ver mais dicas como esta? Acesse o IAI? em site.iai.art.br