Estou desenvolvendo uma aplicação Android, estou com um problema onde eu tenho que setar em um ImageView uma imagem que o usuário escolher do seu SDCard, mas a imagem não está aparecendo no meu imageView. Alguém pode me ajudar?
Esse é meu código.
public void escolherFotoPerfil(View view){
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, IMAGEM_INTERNA);
}
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
//alguma aplicação respondeu a nossa intent.
if(requestCode == IMAGEM_INTERNA){
//verifica se o processamento foi feito corretamente.
if(resultCode == RESULT_OK){
//URI acessa o recurso da imagem na aplicação.
Uri imagemSelecionada = intent.getData();
//pega as colunas do sistema de arquivos do Android.
String[] colunas = {MediaStore.Images.Media.DATA};
//Cursor percorre resultado de um banco de dados.
Cursor cursor = getContentResolver().query(imagemSelecionada, colunas, null, null, null);
//inicialmente não está em nenhuma linha, esse comando move para a primeira.
cursor.moveToFirst();
//essas duas linhas servem para pegar o caminho da imagem que o usuário selecionou.
int indiceColuna = cursor.getColumnIndex(colunas[0]);
String pathImagem = cursor.getString(indiceColuna);
cursor.close();
//transforma imagem em bitmap.
Bitmap imgBitMap = BitmapFactory.decodeFile(pathImagem);
ImageView imgvFotoPerfil = (ImageView) findViewById(R.id.imgvFotoPerfil);
//joga o bitmap no ImageView.
imgvFotoPerfil.setImageBitmap(imgBitMap);
}
}
}