SQLite/Android - Adicionar imagem a partir de resources

Filipe_O

Power Member
Boas pessoal

Estou a desenvolver uma aplicação Android que têm acesso a uma base de dados e gostaria de inserir uma imagem num determinado campo da tabela. Com uma particularidade:
A imagem em questão está localizada nas assets do projecto.

Depois de algum tempo a pesquisar sem encontrar solução, pensei nesta abordagem:
Na classe java da minha pagina, crio uma função para ir buscar a imagem e transforma-la num array de bytes. Consoante o texto da textview "result" assim será o link.
public byte[] getBitmapAsByteArray () {
String caminho="";
byte[] img=null;
switch (result.getText().toString()) {
case "Macaco":
caminho="R.drawable.imagem"; }
InputStream stream= null;
try {
stream = getAssets().open(caminho);
img=new byte[stream.available()];
stream.read(img);
stream.close();
} catch (IOException e) {
e.printStackTrace();}
return img;
}​

Após isto, criar uma função na classe destinada ás operações da base de dados (classe que herda as propriedades da classe SQLiteOpenHelper), ir buscar a variável img e coloca-la no campo da BD.

É precisamente esta ultima parte que eu não estou a conseguir.
Podem-me dar uma ajuda?

Conhecem alguma solução mais viável para o meu problema?

Obrigado
 
Sem saber bem o que pretendes realmente fazer, mas visto que tens a imagem nos resources diria que não tens qualquer necessidade de estar a guardar a imagem numa base de dados. Se cada imagem tiver ~100Kb, ao fim de 10 entradas na base de dados tens a aplicação a ocupar-te ~1MB desnecessariamente..

Uma solução melhor seria guardares uma qualquer referência à imagem (string com algum nome tipo "imagem do macaco", ou procurar se consegues guardar o "R.drawable.image" numa string) e reusá-la quando necessitares de obter a própria imagem..
 
Back
Topo