Comment enregistrer des images sur la carte SD que je récupère à partir de l'URL de l'image?Comment transférer une image de son URL vers la carte SD?
Répondre
Vous devez d'abord vous assurer que votre application a l'autorisation d'écrire sur la carte SD. Pour ce faire, vous devez ajouter l'autorisation d'utilisation pour enregistrer le stockage externe dans le fichier manifeste de votre application. Voir Setting Android Permissions
Ensuite, vous pouvez vous pouvez télécharger l'URL d'un fichier sur la carte SD. Une façon simple est:
URL url = new URL ("file://some/path/anImage.png");
InputStream input = url.openStream();
try {
//The sdcard directory e.g. '/sdcard' can be used directly, or
//more safely abstracted with getExternalStorageDirectory()
File storagePath = Environment.getExternalStorageDirectory();
OutputStream output = new FileOutputStream (new File(storagePath,"myImage.png"));
try {
byte[] buffer = new byte[aReasonableSize];
int bytesRead = 0;
while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
output.write(buffer, 0, bytesRead);
}
} finally {
output.close();
}
} finally {
input.close();
}
EDIT: Put permission manifeste
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@Paresh: Merci, j'ai mis à jour le code pour utiliser 'getExternalStorageDirectory()'. Savez-vous si cela renvoie une barre oblique? par exemple. '/ sdcard' ou'/sdcard/' – Akusete
Votre question est sans intérêt car' Environment.getExternalStorageDirectory() 'ne renvoie pas' String' et votre code n'est donc pas compilé. J'ai corrigé ton code pour toi. –
qu'est-ce qu'un aReasonableSize ?? –
Un excellent exemple se trouve dans le latest post sur le blog de développeur Android:
static Bitmap downloadBitmap(String url) {
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
final HttpGet getRequest = new HttpGet(url);
try {
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w("ImageDownloader", "Error " + statusCode +
" while retrieving bitmap from " + url);
return null;
}
final HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inputStream = null;
try {
inputStream = entity.getContent();
final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
} finally {
if (inputStream != null) {
inputStream.close();
}
entity.consumeContent();
}
}
} catch (Exception e) {
// Could provide a more explicit error message for IOException or
// IllegalStateException
getRequest.abort();
Log.w("ImageDownloader", "Error while retrieving bitmap from " + url,
e.toString());
} finally {
if (client != null) {
client.close();
}
}
return null;
}
Cela ne décrit pas comment enregistrer l'image sur la carte SD, seulement comment télécharger l'image en mémoire. –
Comment cette réponse at-elle obtenu 9 upvotes?! ... –
- 1. Enregistrer une image modifiée sur la carte SD
- 2. Comment récupérer la dernière image d'une carte SD dans Android?
- 3. Copie de fichiers du lecteur d'émulateur vers la carte SD
- 4. transférer une image vers un iphone http
- 5. carte Android-Sd
- 6. Comment formater une carte SD avec FAT16?
- 7. Comment stocker une image dans la carte SD à tout moment
- 8. Comment effacer la mémoire flash (carte SD)?
- 9. Comment sélectionner une image en fonction de son chemin/URL?
- 10. Émulateur Carte SD Partition
- 11. L'écriture de la carte SD échoue?
- 12. Images du dossier sur la carte SD
- 13. stocker des données d'application Android sur la carte SD
- 14. Autorisation d'écriture sur la carte SD
- 15. Comment faire pour exécuter l'émulateur android avec la carte SD
- 16. Copie de fichiers .db génériques sur la carte SD
- 17. Performance d'écriture sur carte SD
- 18. Comment charger jni de la carte SD sur android 2.1?
- 19. Comment puis-je supprimer le fichier image dans une carte SD après l'envoi d'un e-mail?
- 20. Capable d'insérer la valeur d'image passée dans la carte SD?
- 21. émulateur Android problème de carte SD
- 22. Où placer les ressources de son application pour qu'elles soient installées sur la carte SD?
- 23. écriture Android au dossier de la carte SD
- 24. Comment télécharger sur une carte SD dans AIR
- 25. Problème de carte SD d'émulateur Android
- 26. Ecrire le contenu de l'image Voir en grand Image du fichier sur la carte SD
- 27. Comment lire/écrire des données sur la carte SD montée
- 28. Mes images ne montrent pas de la carte SD
- 29. Comment utiliser la carte SD dans Android Emulator 1.5
- 30. comment écrire des données dans la carte SD
@Akusete ... vous devriez remplacer 'buffer.length' dans output.write (buffer, 0, buffer.length); à bytesRead. Sinon, les données parasites seront ajoutées à la fin du fichier. – shaffooo