J'essaie d'enregistrer l'image dans WathsappIMG, mais lorsque je vais dans la galerie d'images Android, l'image et l'image figurant dans le répertoire ne sont pas visibles depuis ES File Explorer
OutputStream output;
// Find the SD Card path
File filepath = Environment.getExternalStorageDirectory();
// Create a new folder in SD Card
File dir = new File(filepath.getAbsolutePath()
+ "/WhatSappIMG/");
dir.mkdirs();
// Retrieve the image from the res folder
BitmapDrawable drawable = (BitmapDrawable) principal.getDrawable();
Bitmap bitmap1 = drawable.getBitmap();
// Create a name for the saved image
File file = new File(dir, "Wallpaper.jpg" );
try {
output = new FileOutputStream(file);
// Compress into png format image from 0% - 100%
bitmap1.compress(Bitmap.CompressFormat.JPEG, 100, output);
output.flush();
output.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
la galerie n’affiche pas (nécessairement) les fichiers du stockage externe.
c'est une erreur commune.
la galerie affiche les images stockées sur le fournisseur de média store
vous pouvez utiliser cette méthode pour stocker un fichier image sur un fournisseur de magasin de médias:
public static void addImageToGallery(final String filePath, final Context context) {
ContentValues values = new ContentValues();
values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.MediaColumns.DATA, filePath);
context.getContentResolver().insert(Images.Media.EXTERNAL_CONTENT_URI, values);
}
voici ce que vous devez entrer lorsque vous êtes sur le point de sauvegarder la photo dans la galerie
MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle , yourDescription);
Ce code ajoutera l'image à la fin de la galerie. alors s'il vous plaît, vérifiez votre image de la galerie, pour être sûr
Essayez d'ajouter ceci:
MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle , yourDescription);
Remplissez vos coordonnées pour votre Bitmap, votre titre et votre description, ou laissez-les simplement comme ""
.
Vous devez ajouter une classe MediaScannerConnection à votre fonction d’enregistrement de l’image dans la galerie. Cette classe recherche de nouveaux fichiers et dossiers dans la galerie connectée à votre application. Ajoutez la classe suivante pour analyser les fichiers d’image nouvellement enregistrés ou le nouveau répertoire des images ajoutées dans la galerie ou télécharger le code source
MediaScannerConnection.scanFile(this, new String[]{file.toString()}, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
Pour les boursiers Xamarin:
public static void SaveToTheGalley(this string filePath, Context context)
{
var values = new ContentValues();
values.Put(MediaStore.Images.Media.InterfaceConsts.DateTaken, Java.Lang.JavaSystem.CurrentTimeMillis());
values.Put(MediaStore.Images.Media.InterfaceConsts.MimeType, "image/jpeg");
values.Put(MediaStore.MediaColumns.Data, filePath);
context.ContentResolver.Insert(MediaStore.Images.Media.ExternalContentUri, values);
}
Et n'oubliez pas la permission Android.permission.WRITE_EXTERNAL_STORAGE
.
Vous devriez changer ce morceau de code
try {
output = new FileOutputStream(file);
// Compress into png format image from 0% - 100%
bitmap1.compress(Bitmap.CompressFormat.JPEG, 100, output);
output.flush();
output.close();
String url = Images.Media.insertImage(getContentResolver(), bitmap1,
"Wallpaper.jpg", null);
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}