(eu tinha aberto outra dúvida nesse post, mas já resolvi. Porém agora está com problema) Olá! Eu estou utilizando o Android 7.0, realizei as mudanças no código porém ele está dando erro quando eu clico confirmo a foto. Tem uma Stacktrace enorme, não coloquei aqui porque ficaria uma bagunça no post, mas é NullPointerException.
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=123, result=-1, data=Intent { act=inline-data (has extras) }} to activity {br.com.hudxd.agenda/br.com.hudxd.agenda.FormularioActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
Segue o código:
OnCreate
Button botaoFoto = (Button) findViewById(R.id.formulario_botao_foto);
botaoFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String caminhoFoto = getExternalFilesDir(null) + "/" + System.currentTimeMillis() + ".jpg";
File arquivoFoto = new File(caminhoFoto);
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(FormularioActivity.this, BuildConfig.APPLICATION_ID + ".provider", arquivoFoto));
startActivityForResult(intentCamera, CODIGO_CAMERA);
}
});
OnActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == CODIGO_CAMERA && resultCode == Activity.RESULT_OK){
ImageView foto = (ImageView) findViewById(R.id.formulario_foto);
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapReduzido = bitmap.createScaledBitmap(bitmap, 100, 100, true);
foto.setImageBitmap(bitmapReduzido);
foto.setTag(caminhoFoto);
}
}