Maison  >  Article  >  Java  >  Comment enregistrer une image dans la galerie Android avec des métadonnées personnalisées ?

Comment enregistrer une image dans la galerie Android avec des métadonnées personnalisées ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 17:08:29166parcourir

How to Save an Image to the Android Gallery with Custom Metadata?

Enregistrer l'image dans la galerie sous Android

L'enregistrement des images dans la galerie dans une application Android peut être réalisé via la classe MediaStore. Utilisez la méthode suivante dans un écouteur onOptionsItemSelected :

<code class="java">MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, title, description);</code>

Lorsque le bitmap est votre image, le titre et la description sont des métadonnées facultatives. Cette méthode ajoute l'image à la fin de la galerie.

Personnalisation des métadonnées de l'image

Si vous souhaitez modifier la date de l'image ou d'autres métadonnées pour un placement correct dans la galerie :

<code class="java">// Import the necessary libraries
import android.provider.MediaStore;
import android.graphics.Bitmap;

// New method to insert image with customized metadata
public static String insertImageWithMetadata(ContentResolver cr, Bitmap source, String title, String description, long timestamp) {
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, title);
    values.put(MediaStore.Images.Media.DISPLAY_NAME, title);
    values.put(MediaStore.Images.Media.DESCRIPTION, description);
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
    values.put(MediaStore.Images.Media.DATE_ADDED, timestamp);
    values.put(MediaStore.Images.Media.DATE_TAKEN, timestamp);

    Uri uri = null;
    String stringUrl = null;

    try {
        uri = cr.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

        if (source != null) {
            OutputStream imageOut = cr.openOutputStream(uri);
            source.compress(Bitmap.CompressFormat.JPEG, 50, imageOut);
            imageOut.close();
        } else {
            cr.delete(uri, null, null);
            uri = null;
        }
    } catch (Exception e) {
        if (uri != null) {
            cr.delete(uri, null, null);
            uri = null;
        }
    }

    if (uri != null) {
        stringUrl = uri.toString();
    }

    return stringUrl;
}</code>

Cette méthode inclut des paramètres supplémentaires pour les valeurs DATE_ADDED et DATE_TAKEN personnalisées, vous permettant de contrôler la position de l'image dans la galerie. Le paramètre timestamp représente la date et l'heure en millisecondes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn