Comment enregistrer un bitmap sur la mémoire de stockage interne de télécharger à partir d'internet
Je suis en utilisant Asynctask pour télécharger une image à partir d'internet.
Je veux enregistrer cette image de la mémoire de stockage interne et, plus tard, je veux utiliser cette image.
Je peux télécharger avec succès, mais je ne peux pas trouver un espace de stockage interne de chemin d'accès où il est le stockage.
Ce DownloadImages.java
private class DownloadImages extends AsyncTask<String,Void,Bitmap> {
private Bitmap DownloadImageBitmap(){
HttpURLConnection connection = null;
InputStream is = null;
try {
URL get_url = new URL("http://www.medyasef.com/wp-content/themes/medyasef/images/altlogo.png");
connection = (HttpURLConnection) get_url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.connect();
is = new BufferedInputStream(connection.getInputStream());
final Bitmap bitmap = BitmapFactory.decodeStream(is);
//??????????
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally {
connection.disconnect();
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected Bitmap doInBackground(String... params) {
return DownloadImageBitmap();
}
}
Toute aide sera appréciée. 🙂
Merci.
double possible de Android Économie bitmap créé de répertoire sur la carte sd
Vous avez le bitmap
regardez cette réponse stackoverflow.com/a/7887114/964741
Vous avez le bitmap
final Bitmap bitmap = BitmapFactory.decodeStream(is);
Utiliser cette image pour une utilisation future. Quel est le big deal?regardez cette réponse stackoverflow.com/a/7887114/964741
OriginalL'auteur Olkunmustafa | 2013-11-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez sauvegarder et charger l'image sur le stockage interne comme ceci:
Enregistrement:
De chargement:
Mais vous devez sauvegarder le imageName en quelque sorte, si vous voulez le retrouver, si l'application est fermée. Je conseille une base de données SQLLite que la carte imageNames à des entrées dans la base de données.
Je ne suis pas sûr que vous pouvez utiliser le "/" dans la mémoire de stockage interne. Vous pourriez avoir à les remplacer par quelque chose d'autre. le chemin d'accès.replaceAll("/", "_");
Et aussi, pour rendre votre nameScheme: split[] = string.split("/"). Puis diviser[4] = " ** "+split[4]+" ** ";
fis = contexte.openFileInput(picName); il a été ma solution j'ai raté contexte pour openFileInput()
OriginalL'auteur Joakim Palmkvist
Ma solution sur Kotlin. (base sur une autre réponse)
InternalStorageProvider(context).saveBitmap(bitmap, filename)
. Suis-je en train de faire quelque chose de mal?Veuillez fournir des détails. Avez-vous essayer le code suivant dans l'Activité, Fragment ou d'une autre classe
Je suis à l'appel de cette classe à partir de fragment. Si j'ai mis ce code à l'intérieur du fragment, il fonctionne. C'est un peu bizarre de problème, car pour une raison que je ne peut pas importer cette classe de fragment:
import com.packagename... helpers.InternalStorageProvider
est pas résolu. Tho, si je retire contexte constructeur importer des œuvres.Fournissez-vous le bon contexte?
Imagine que oui, fonctionne à l'intérieur d'un fragment. De toute façon, je vais explorer cette plus tard, je me demandais juste est ma syntaxe fine et Il semble être. Je suis encore nouveau pour Kotlin et atm je réécris mon code de Java à Android..
OriginalL'auteur Vova Stelmashchuk
Avez-vous considéré l'utilisation de Glisse de la bibliothèque (ou Picasso) pour télécharger des images? De cette façon, vous abstraites tous les détails de bas niveau de connexions Http, disquette de sauvegarde, la mémoire et le cache disque, les fonctionnalités en mode hors connexion, etc. Aussi, si vous choisissez de la Glisse, vous gagnez automatiquement certains soigné décoloration des animations sur l'image de chargement.
Exemples (kotlin)
À télécharger sur le disque:
À la charge de la mémoire cache, ou télécharger si non disponible sur le cache:
OriginalL'auteur Patrick Steiger
Essayez ceci:
OriginalL'auteur Damien R.
Lors de la programmation ce et de l'exécution de l'application, est parfois nécessaire de désinstaller l'application à partir de votre émulateur/téléphone (dans le cas où vous avez défini un fichier, un dossier, et vous avez corrigé, mais dans la mémoire de l'émulateur de téléphone mobile/immobile dossier)
OriginalL'auteur DigaoParceiro