Heim  >  Artikel  >  Java  >  Wie speichere ich ein Bild mit benutzerdefinierten Metadaten in der Android-Galerie?

Wie speichere ich ein Bild mit benutzerdefinierten Metadaten in der Android-Galerie?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 17:08:29166Durchsuche

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

Bild in der Galerie in Android speichern

Das Speichern von Bildern in der Galerie in einer Android-App kann über die MediaStore-Klasse erreicht werden. Verwenden Sie die folgende Methode innerhalb eines onOptionsItemSelected-Listeners:

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

Wobei Bitmap Ihr ​​Bild ist, sind Titel und Beschreibung optionale Metadaten. Mit dieser Methode wird das Bild am Ende der Galerie hinzugefügt.

Bildmetadaten anpassen

Wenn Sie das Datum des Bildes oder andere Metadaten für die richtige Platzierung in der Galerie ändern möchten :

<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>

Diese Methode enthält zusätzliche Parameter für benutzerdefinierte DATE_ADDED- und DATE_TAKEN-Werte, mit denen Sie die Position des Bildes in der Galerie steuern können. Der Zeitstempelparameter stellt Datum und Uhrzeit in Millisekunden dar.

Das obige ist der detaillierte Inhalt vonWie speichere ich ein Bild mit benutzerdefinierten Metadaten in der Android-Galerie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn