IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

charger images bitmap au fur et a mesure


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut charger images bitmap au fur et a mesure
    Bonjour,
    Je réalise actuellement un player, et j'ai énormément de musiques, et aussi beaucoup de jaquettes.

    J'ai régulièrement des exceptions java.lang.OutOfMemory à cause des images (jaquettes) lors du chargement de l'appli (tout est chargé au début)
    Je sais qu'il existe un moyen de charger les images uniquement sur demande (c'est à dire lors que la musique est jouée)

    Pourriez-vous m'expliquer un peu comment ça marche s'il vous plait ?
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Pour ça, il faudrait connaître un peu plus l'architecture de ton application.

    Basiquement, tu ne demandes une image que lorsqu'elle doit s'afficher, pas avant, pas après.
    Ce n'est pas la peine de charger une image qui n'est pas dans l'interface actuelle, et qui n'est pas dans les items montrés à l'utilisateur.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 64
    Points : 71
    Points
    71
    Par défaut
    Comme le dit Hizin, difficile de répondre sans avoir plus de détails. Tu souhaites les afficher dans une liste ?
    Si c'est le cas je te conseille de regarder la librairie Universal Image Loader qui fonctionne pas mal, couplée à un adapter

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut
    En fait, lorsque je lance l'appli, j'ai un asynchtask qui récupère dans le dossier music toutes les musiques et les jaquettes. A chaque fois qu'il trouve une jaquette, il charge l'image et la converti direct en bitmap. Le tout est ajouté dans une liste (mon wrapper).

    Je consrtuis donc ma liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class AudioFileWrapper {
    	private Bitmap albumCoverBitmap;
    	private File audioFile;}
    la construction de cette liste provoque des erreurs out of memories.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut
    Je précise que mes images sont dans un viewflipper.

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Tout a fait normal que tu aies des OOM.

    Cas concret : tu as 1 000 items. Tu es sur l'item 1. Quel est l'intérêt de charger les images autre que celles correspondantes aux items [1, 5] (et [995, 1 000] si le ViewPager est circulaire) ?
    Je suis sur l'item 1, l'image de l'item 500 est déjà pré-chargé.

    Il n'y a aucun intérêt, quelle que soit la plate-forme, a charger inutilement des choses. Charger l'image courante et les 5 ou 10 l'englobant est largement suffisant.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par Hizin Voir le message
    Tout a fait normal que tu aies des OOM.

    Cas concret : tu as 1 000 items. Tu es sur l'item 1. Quel est l'intérêt de charger les images autre que celles correspondantes aux items [1, 5] (et [995, 1 000] si le ViewPager est circulaire) ?
    Je suis sur l'item 1, l'image de l'item 500 est déjà pré-chargé.

    Il n'y a aucun intérêt, quelle que soit la plate-forme, a charger inutilement des choses. Charger l'image courante et les 5 ou 10 l'englobant est largement suffisant.
    Mais je suis tout à fait d'accord
    C'est pour ça que je demandais une méthode simple et propre pour précharger quelques images.

    Je pense qu'il faut que j'enlève le viewflipper, et que je le remplace par des imagesview tout cours...

  8. #8
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Ou simplement que tu regardes l'item courant et que tu lances le pré-chargement des items + 5 et des items - 5.

    Un truc qui se plug sur le changement, et qui charge/décharge suivant l'indice courant.
    Bon, j'ai l'habitude de faire ce genre de truc moi-même, mais il doit exister des composants permettant de le faire plus ou moins automatiquement. Possiblement des RemoteImageView.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

Discussions similaires

  1. charger deux images bitmap non visibles
    Par Madman dans le forum Visual Studio
    Réponses: 0
    Dernier message: 15/04/2010, 10h52
  2. Réponses: 10
    Dernier message: 10/09/2008, 18h09
  3. Afficher et comparer 2 images bitmap
    Par leplusnul dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2004, 16h54
  4. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 11h29
  5. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo