Aller au contenu

Mettre un bitmap dans une Base de donnée?


Recommended Posts

Salut.

Je travaille pour l'instant dans mes programmes avec des éléments d'une base de donnée qui contiennent une url vers une image.

Quand je veux les afficher, je vais à chaque fois chercher l'image associée à l'url, ce qui est tres tres lourd.

J'aimerais changer cette méthode et stocker les images dans ma DB. ( ce sont des icones, ca prend pas de place, et il y en a 4 ou 5 maximum)

exemple d'éléments de ma DB:

EN GENERAL: String nom - String description - String img_url

ITEM 1: Pomme - la pomme est un fruit - http://www.24hr-slots.co.uk/Microgaming/fr/images/Monster_Mania/Pomme.jpg

ITEM 2: Robot - un robot est un tas de métal qui semble être en vie - http://a1.twimg.com/profile_images/22039052/03.01.c3po_normal.jpg

Tout se passe tres bien, mais quand je veux afficher dans ma listview, mon adapter ca chercher directement l'image sur le net, et cela fait des accès à rallonge et un programme assez lent!

est-il possible de stocker directement l'image dans la DB pour un acces instantané????

Je précise que je peux transformer l'image en ressource de type "Bitmap" et c'est donc cette valeur que j'aimerais stocker.

pour l'instant je fais ceci:

        "create table "+DATABASE_TABLE+" (_id integer primary key autoincrement, "
               + KEY_NAME+" text not null, "+KEY_DESCRIPTION+" text not null, "+KEY_IMG_URL+" text not null);";

et un "put" pour mettre la valeur dans la DB.

Je vois bien que le put ne peut pas accepter de valeur genre Bitmap

20091228-irts1ncx957jm9adhsb2ctsfr.jpg

Donc je ne sais pas si ce que je demande est possible.

L'option de stocker les images sur la SD me parait un peu lourd, donc je cherche une alternative.

Merci pour votre aide

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

De mon avis de simple programmeur du dimanche:

Si il y a moyen de le faire avec DB, ca va faire un code simple et clair avec toutes les infos au même endroit

Avec la SD, cela fait plein de tests en plus pour éviter les erreurs quand pas de carte ou pas de bon répertoire,

Puis, il n'y a rien à faire, mais tout dans la DB, ca simplifie énormément les choses! lol

Bon, j'ai trouvé une piste: cf le message de padde dans ce forum: http://www.anddev.org/viewtopic.php?p=31939

Je testerai cet apres-midi.

Lien vers le commentaire
Partager sur d’autres sites

Essaye un truc du genre :

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

myBitmap.compress(Bitmap.CompressFormat.PNG, outStream);

myDataBase.put(key, outStream.toByteArray());

Pour reconstruire l'image, il faudra utiliser BitmapFactory.decodeByteArray();

Ah bah tu avais déjà trouvé ça en fait. :lol:

Modifié par Nivek
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...