Quando tiro a foto, e clico no botão V para concluir ele me da o seguinte erro:
Process: com.example.leandro.agenda, PID: 4710 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=567, result=-1, data=null} to activity {com.example.leandro.agenda/com.example.leandro.agenda.FormularioActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference.
Segue código abaixo!
//instancia botão de foto
Button botaoFoto = (Button) findViewById(R.id.formulario_botao_foto);
//Instancia função que escuta click no botão
botaoFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Define caminho da imagem
caminhoFoto = getExternalFilesDir(null) + "/"+ System.currentTimeMillis() +".jpg";
//Cria arquivo
File arquivoDaFoto = new File(caminhoFoto);
//Instancia intent da camera
Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//Coloca parametro extra que sera passado para proxima activity
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoDaFoto));
//Starta activity com retorno
startActivityForResult(intentCamera, CODIGO_CAMERA);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//abrir foto que nos tiramos
if( resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case CODIGO_CAMERA:
Toast.makeText(FormularioActivity.this, "Foto "+ caminhoFoto +" deletado" , Toast.LENGTH_LONG).show();
helper.carregaImagem(caminhoFoto);
break;
}
}
}
Função da class FormularioHelper
public void carregaImagem(String caminhoFoto) {
if( caminhoFoto != null ) {
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapCroop = Bitmap.createScaledBitmap(bitmap, 300, 300, true);
campoFoto.setImageBitmap(bitmapCroop);
campoFoto.setScaleType(ImageView.ScaleType.FIT_XY);
campoFoto.setTag(caminhoFoto);
}
}