Mon application utilise 29 images dans 2 classes différentes (et mises en page). Dans une mise en page, il y a 1 vue d'image qui change entre au plus 25 des images, puis l'autre mise en page est une vue de défilement qui contient toutes les images où 3 ou 4 au maximum sont visibles sur l'écran à la fois. Auparavant, les images étaient enregistrées au format .jpg et chacune mesurait 720 * 540 et avait une taille d'environ 200-300kb. Mon application a rencontré des problèmes de mémoire après être passé entre mes deux mises en page qui utilisent les images; il utilise plus de 100 mb. J'ai fait des recherches sur les images bitmap et les ai essayées pour mes images, mais elles n'ont pas beaucoup aidé parce que je n'ai toujours pas de problèmes de mémoire et elles ont augmenté la taille .apk de près de 3 fois. Quel est le moyen le plus préféré pour charger des images, est-ce que c'est un dessin d'un .jpg ou d'un bitmap ou d'une autre manière? Toute suggestion serait appréciée.façon la plus efficace d'afficher des images
Répondre
lorsque le bitmap est en mémoire, il est décompressé. le format original n'a pas d'importance. vous pouvez compter sur chaque image en prenant environ largeur * hauteur * 4 octets de mémoire. par exemple, chacune de vos images 720 x 540 prendra ~ 1,5 Mo de mémoire.
peu importe d'où vous les chargez, au moins en ce qui concerne la quantité de mémoire requise.
lire maintenant ce,
http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html
ok donc si je comprends bien le lien suggère de mettre en cache toutes les images et de ne charger que les images qui sont actuellement sur l'écran? – ez4nick
oui, toutes les images devraient provenir du cache. Le mieux est de mettre un wrapper autour de cette classe qui soit provient du cache ou charge à partir de la source et insère dans le cache. et oui, généralement vous auriez une vue qui utilise un adaptateur. dans la méthode "get view" de l'adaptateur, vous chargez l'image ... ce qui signifie qu'elle provient du cache ou qu'elle est chargée depuis la source. –
ok merci pour l'info. Je suis sûr que plus de recherches je serai en mesure d'accomplir cette – ez4nick
Vous pouvez lire le code source de la galerie du système, vous pouvez tout à fait comprendre le fonctionnement bitmap. Lorsque vous obtenez une image à la première fois, vous devez décoder le fichier d'origine et l'enregistrer dans le fichier de cache. Ensuite, pour la prochaine fois, vous venez de décoder le fichier cache, ce qui est plus rapide. Votre mémoire est limitée. Ne vous attendez pas à stocker toutes vos bitmaps, juste le bitmap que vous voulez montrer sur l'écran. La taille de la vignette est beaucoup plus petite que l'image complète. Donc, il n'y a pas de problème si vous voulez mettre 8 ~ 10 miniatures à l'écran. Lorsque les utilisateurs cliquent sur la vignette pour parcourir l'image complète, vous pouvez charger l'intégralité de l'image en mémoire et recycler les autres bitmaps.
- 1. Linq façon la plus efficace
- 2. façon plus efficace .php
- 3. Façon la plus efficace de concaténer des vecteurs
- 4. Façon la plus efficace de créer des miniatures?
- 5. façon plus efficace d'utiliser SQL OU?
- 6. WPF: Manière plus efficace d'afficher des images qui changent rapidement?
- 7. Façon la plus rapide/la plus efficace de dessiner des bulles vocales à l'écran - CoreAnimation, Quartz2D?
- 8. La façon la plus efficace de traiter DBNull dans .NET
- 9. Façon la plus efficace de dessiner plusieurs objets identiques?
- 10. requête la plus efficace?
- 11. Une façon plus efficace de gérer un magasin en ligne
- 12. Java façon plus élégante d'écrire des instructions avec des images
- 13. Façon la plus efficace de faire une disposition coulissante horizontale
- 14. Façon la plus efficace de répéter un vecteur dans Matlab
- 15. Android télécharger des images sur le serveur de la manière la plus efficace
- 16. La façon la plus efficace de vérifier l'adhésion de la liste de plus d'une valeur
- 17. La façon la plus efficace pour le téléchargement d'images (deux approches)
- 18. Comparaison plus efficace des nombres
- 19. La méthode la plus efficace de mise à jour des images
- 20. La façon la plus efficace d'utiliser des plugins et historique paginations Jquery ensemble
- 21. Méthode la plus efficace pour transférer des images vers un client Silverlight
- 22. La manière la plus simple et la plus efficace de lire des images locales dans Flex 4/Air
- 23. Monter plusieurs parents dans jQuery - façon plus efficace?
- 24. Meilleure façon de simplifier ce code, plus efficace
- 25. LINQ to SQL: la plus efficace façon de Looping par Liste des ID
- 26. Façon la plus efficace de faire du HTML statique en plusieurs langues
- 27. Un itinéraire plus efficace
- 28. façon parfaite d'afficher des images
- 29. Méthode la plus efficace pour extraire des données d'une chaîne
- 30. plus efficace l'évaluation de la fonction symbolique
Je suis un peu confus. Pourquoi bidmap augmente les fichiers apk? Nous les décodons dans le code java, non? Ce lien pourrait vous être utile. http://developer.android.com/training/displaying-bitmaps/manage-memory.html –
Les fichiers bitmap sont beaucoup plus volumineux, les fichiers bitmap sont décompressés et les fichiers jpg sont compressés – ez4nick
Je sais que bitmap n'est pas compressé. Mais nous ne les avons pas dans le fichier apk, non? Nous utilisons BitmapFactory pour les décoder uniquement lorsque nous exécutons l'application. Le fichier apk a seulement jpg au lieu de bitmaps –