Bom dia, pessoal como faço para pegar foto da galeria do android em vez de usar a câmera ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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);
}