2013-08-08 3 views
-1

Je n'arrive pas à enregistrer une image dans mon application. J'ai un bouton dans une activité qui ouvre ma galerie. Je sélectionne une image et cette image s'affiche à l'écran dans une imageView. Tout va bien tant que je reste sur cet écran. Quand je change d'écran et que je reviens, l'image est partie. Comment puis-je obtenir cette image pour rester? (L'image sera utilisée comme une "image de profil/avatar" que l'utilisateur peut choisir lui-même en utilisant une image de la galerie). ** Première publication sur débordement de pile ... désolé si j'ai fait quelque chose de mal.Android Eclipse: Comment enregistrer une image De la galerie à une application

+0

Jetez un oeil à http://developer.android.com/training/basics/activity-lifecycle/index.html –

Répondre

-1

Chaque fois que votre activité sort de l'écran, elle est arrêtée et peut être détruite. Donc, chaque fois que vous revenez à votre activité, il y a une chance qu'elle soit recommencée depuis le début. Cela signifie que votre méthode onCreate() est à nouveau appelée (très probablement). Vous pouvez en savoir plus sur le cycle de vie de l'activité Android ici. http://developer.android.com/training/basics/activity-lifecycle/index.html

Les applications dans android ne fonctionnent pas de la même manière que vous attendez dans un système d'exploitation de bureau. Votre activité peut être détruite à tout moment ou votre activité peut être appelée à afficher à tout moment.

Bien sûr, vous pouvez enregistrer des informations sur l'image choisie par l'utilisateur la dernière fois. Mais vous devez d'abord connaître les cycles de vie des activités Android.

En fait, vous pouvez sauvegarder les informations du choix de l'utilisateur et le charger lors de la prochaine création de l'activité. Si vous souhaitez vous assurer que votre activité peut afficher l'image même après son déplacement ou sa suppression, vous pouvez la copier dans un dossier Cache ou la stocker dans la base de données SQLite (bien que le stockage d'images dans la base de données SQlite ne soit pas recommandé). Au lieu de mettre en cache l'image réelle, vous pouvez créer une version basse résolution en utilisant la classe BitmapFactory.

La bibliothèque Android-Universal-Image-Loader vaut le détour https://github.com/nostra13/Android-Universal-Image-Loader.

+0

-1 pour fausse déclaration "Donc, en termes simples, chaque fois que vous revenez à votre activité, c'est re -Depuis le début ". Ce ** peut ** arriver, peut être ** forcé ** à se produire, mais dans la plupart des cas ne l'est pas. –

+0

@MarcinOrlowski Vous avez raison.But asker semble être nouveau sur Android Development et une telle réponse pourrait créer une confusion. –

+0

Vous ne l'aidez pas en diffusant de fausses informations. –

Questions connexes