Bom dia, pessoal como faço para pegar foto da galeria do android em vez de usar a câmera ?
Bom dia, pessoal como faço para pegar foto da galeria do android em vez de usar a câmera ?
Oi Alisson, tudo bem ?
Vamos precisar usar a intent implícita para resolver esse problema.
new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
Agora precisamos inicializar essa intent, para isso teremos que pedir para o so disparar um evento onde ele traga diversos lugares que possuem foto, para isso usaremos um criador de opções e como estamos aguardando um resultado temos que usar startActivityForResult
:
startActivityForResult(Intent.createChooser(intent, "Selecione uma imagem"), 123);
Agora para resgatar a imagem precisamos pegar as informações atráves do onActivityResult
:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == Activity.RESULT_OK){
if(requestCode == 123){
Uri imagemSelecionada = data.getData();
}
}
}
Agora basta você usar essa Uri para conseguir manipular a imagem.
Abraços
olha blz até ai, ele abre a galeria pega a foto só que eu queria levar essa img para um ImageView
Button pegaFoto = (Button) findViewById(R.id.formulario_pega_foto);
pegaFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentPegaFoto = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(intentPegaFoto,PEGA_FOTO);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == Activity.RESULT_OK) {
if (requestCode == CODIGO_CAMERA) {
helper.carregaImage(caminhoFoto);
}else if (requestCode == PEGA_FOTO){
Uri imagemSelecionada = data.getData();
ImageView foto = (ImageView) findViewById(R.id.fomulario_foto);
Bitmap bitmap = BitmapFactory.decodeFile(String.valueOf(imagemSelecionada));
Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 1080, 1000, true);
foto.setImageBitmap(bitmapReduzido);
foto.setScaleType(ImageView.ScaleType.FIT_XY);
}