Maison > Java > javaDidacticiel > 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
Libérer: 2024-11-02 17:08:29
original
244 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal