2016-04-29 4 views
0

Ich bin neu in Android Development. Ich versuche, den Speicherort der Image-Datei in der Sqlite-Datenbank zu speichern. Das Bild wird von Intent mit einem beliebigen Dateimanager oder einer Galerie empfangen. Ich möchte seinen realen Pfad in der Datenbank speichern, damit ich ihn beim nächsten Mal für jede Aktion abrufen kann. Ich möchte kein Blob verwenden/möchte das Bild nicht in der Datenbank speichern. Ich finde keine besseren Lösungen. Bitte helfen Sie.Wie man den Bildstandort speichert (aus Filepicker/Intent holen) in Sqlite

+0

Sie können Tabelle mit Textspalte erstellen und Pfad dort speichern – Alexander

+0

Ich habe eine Textspalte, um den Pfad dort zu speichern, aber was ich nicht in der Lage bin, ist der Bildstandort von Absicht. – Krups

+0

Sie können Bild im Ordner so etwas wie Cache speichern, wenn es möglich ist. Oder speichern Sie URL auf dem Bild und laden Sie es jedes Mal im Speicher, wenn es benötigt wird – Alexander

Antwort

0

Sie ein Bild als bytearray in Datenbank speichern können oder auch speichern Bild-URL als Text in SQLite

0

Versuchen Sie, diese

Intent name=new Intent(Intent.ACTION_GET_CONTENT); 

name.setType("image/*.png"); // It could be any files extension that your going to search 

startActivityForResult(name, requestCode); 

Und auch onActivityResult außer Kraft setzen() -Methode

@Override 

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 

String path=data.getData().getPath(); 
//Here insert the path into database 
} 
+0

dies gibt mir Pfad wie '/ Dokument/primäre: Download/2015-09-04.jpg' stattdessen von '/ storage/emuliert/0/Download/2015-09-04.jpg'. Ist es ratsam, Korrekturen im Pfad vorzunehmen, bevor Sie sie in der Datenbank speichern? Was sind die Optionen, um Änderungen an diesem Zeichenfolgenpfad vorzunehmen? , @akhil Rao – Krups

0

Sie können den Bildpfad speichern und immer überprüfen, ob der Pfad gültig ist oder existiert.

können Sie eine Absicht verwenden, um das Bild abholen:

Intent intent = new Intent(Intent.ACTION_PICK); 
intent.setType("image/*"); 
startActivityForResult(intent, PICK_IMAGE_REQUEST_CODE); 

Und das Bild Weg bekommen:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == PICK_IMAGE_REQUEST_CODE) { 
     /** You have to call the getData or getDataString to get the images address */ 
     Log.i("CCC", data.getDataString()); 
    } 
} 

Mit dem Pfad, den Sie in der Datenbank speichern können.

Viel Spaß !!

Verwandte Themen