4
respostas

Foto da galeria e SQLite

como faço para guarda a foto que pego da galeira no banco de dados em Android ???

4 respostas

Alisson, tudo bem ?

A gente não consegue armazenar a foto diretamente no bd, o que você pode fazer é armazenar o caminho dela no seu bd, o grande problema de trabalharmos com a galeria é que a qualquer instante o usuário pode deletar a foto que dará inconsistencia aos nossos dados.

Bom Alisson, a melhor pratica seria salvar a URL da imagem no banco e não a imagem em si. Mas para salvar a imagem diretamente no banco, o SQLite dispõe do tipo de dado BLOB (Binary Large Object), que armazena arquivos multimídia como um array de bytes. Então primeiramente é preciso converter a imagem recuperada da galeria nesse array de bytes.

Bitmap bitmap = ((BitmapDrawable)foto.getDrawable()).getBitmap();
  ByteArrayOutputStream saida = new ByteArrayOutputStream();
  bitmap.compress(Bitmap.CompressFormat.PNG,100,saida);
  byte[] img = saida.toByteArray();

Onde foto é sua imagem recuperada e img é seu array de bytes pronto para ser enviado a classe responsavel por armazenar no banco.

Bons estudos.

como faço para pega a url da imagem da galeria?

A própria Uri, tem um método chamado getPath() que retorna o caminho real do arquivo.