Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 1 da Aula 2 - Câmera e arquivos

Não seria necessário o uso de um try/catch na hora que o aplicativo tentasse buscar pelo caminho da foto? Nesse caso o programa iria crashar se a foto houvesse sido deletada, não?

1 resposta
solução!

Olá João Pedro,

Nosso código quebraria se a foto fosse excluída, a Exception que levaríamos é :

NullPointerException

Nosso código está assim :

Bitmap bm;

        if (aluno.getCaminhoFoto() != null) {
            bm = BitmapFactory.decodeFile(aluno.getCaminhoFoto());
        } else {
            bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.user);
        }

        bm = Bitmap.createScaledBitmap(bm, 100, 100, true);  // aqui levaríamos a exception !!

        foto.setScaleType(ImageView.ScaleType.FIT_XY);
        foto.setImageBitmap(bm);

Pois em nosso banco de dados, temos o caminho da imagem, e quando ele busca e não acha nada, nosso bitmap é nulo.

Se usarmos um try/ catch, pode ser feito desta forma :


    Bitmap bm;

    if (aluno.getCaminhoFoto() != null) {
        bm = BitmapFactory.decodeFile(aluno.getCaminhoFoto());
    } else {
        bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.user);
    }

    try {
        bm = Bitmap.createScaledBitmap(bm, 100, 100, true);

    } catch (NullPointerException e){
        Log.e("Exception :", e.toString());
        bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.user);

        bm = Bitmap.createScaledBitmap(bm, 100, 100, true);

    }

     foto.setScaleType(ImageView.ScaleType.FIT_XY);
     foto.setImageBitmap(bm);

Espero ter ajudado !

Qualquer dúvida pode perguntar.

Abraço :)