J'essayais de faire une application qui avait également la possibilité de laisser l'utilisateur sélectionner le papier peint qu'il aimerait définir. J'ai réussi cela en appelant la galerie Intent. Une fois que l'utilisateur sélectionne une image spécifique, le chemin de données de l'image me revient, puis je prévisualise l'utilisateur en plaçant l'image sur une imageview. Le problème surgit lorsque la taille de l'image (et/ou la résolution) est supérieure à celle attendue par l'androïde. Cela entraîne l'échec de mon module. Et comme si cela ne suffisait pas, quand l'utilisateur essaie de sélectionner un autre fond d'écran (et dans mon test le "autre" papier peint était aussi de taille> 700kb) alors l'application plante avec "OutOfMemoryException".mise en fond d'écran par code
M'aider ici les gars !!!
Gallery Intention j'utiliser:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_IMAGE);
Pour définir le fond d'écran i utiliser:
InputStream is = getContentResolver().openInputStream(Uri.parse(uri_returned_from_intent));
Bitmap bgImage = BitmapFactory.decodeStream(is);//OutOfMemory error thrown here
setWallpaper(bgImage);
j'ai donc 2 problèmes à traiter:
- Comment recadrer la image avant de le mettre en fond d'écran ...
- Cant comprendre y OutOfMemor yException est levé, car aucune de mes tailles d'image ne dépasse même 1mb ... et je suppose que le budget VM en cas de N1 est 24Mb si je ne me trompe pas ...
Et les gars certains articles ont mentionné les fuites de mémoire ... mais est-ce possible pour les fuites de mémoire dans le cas ci-dessus pour manger le budget des machines virtuelles? – JaVadid
btw avez-vous trouvé une solution à "Comment recadrer l'image avant de la définir comme fond d'écran"? Je suis à la recherche d'une solution qui utilise l'interface utilisateur de recadrage et ne recadre pas le code. – dparnas