Salvar imagem em xml

Olá, boa tarde, eu estou desenvolvendo um aplicativo que cria perguntas. Eu salvo essas perguntas, num arquivo XML. Só que eu tenho que pegar uma imagem em bitmap e salvar dentro de uma tag XML. E depois pegar essas informações dentro da tag e transformar em bitmap de novo. Será que tem como?

Você pode tentar converter essa imagem para base64 (bytes para texto) e armazenar o texto no xml. Fazendo isso, vc consegue recriar a imagem.

1 curtida

E como eu pego a minha referência ao objeto Bitmap e o transformo em array para depois usar a classe Base64

Arquivo para byte array:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();

Byte array para Base64:

String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);

Meu código teste ficou assim. Obrigado mesmo pela ajuda. Espero que este tópico ajude também outras pessoas.

Bitmap image = BitmapFactory.decodeResource(this.getResources(), R.drawable.ic_launcher); // Pego a imagem
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
String encode = Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray()); // Passo minha imagem para o encode 64
new AlertDialog.Builder(this).setMessage(encode).show();// Mostro o código na tela
byte[] byDaImg = Base64.getDecoder().decode(encode); // Transformo a imagem de base64 para uma array de bytes
ImageView imView = new ImageView(this);
Bitmap bt = BitmapFactory.decodeByteArray(byDaImg, 0, byDaImg.length); // Transformo a imagem em bitmap
imView.setImageBitmap(bt); // adiciono ela ao meu imageView
new AlertDialog.Builder(this).setView(imView).show(); // e a monstro na tela