Je peux enregistrer les images dans la base de données. Le problème que j'ai maintenant est de le récupérer et de l'utiliser dans le code.Comment récupérer une seule image à partir d'une base de données SQLite
Regardez mon gestionnaire de base de données méthode get:
ImageClass getImage(int state_id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(DATABASE_TABLE_NAME, new String[]{STATE_ID, STATE_NAME, STATE_IMAGE}, STATE_ID + "=?",
new String[]{String.valueOf(state_id)}, null, null, null, null);
if (cursor != null);
cursor.moveToFirst();
ImageClass imageClass = new ImageClass(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getBlob(1));
cursor.close();
return imageClass;
}
Regardez le code i utilisé dans l'activité principale ..
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ImageClass imageClass = db.getImage();
byte[]in = imageClass._image;
Bitmap imah = Utils.getImage(in);
img.setImageBitmap(imah);
}
});
} catch(IOException e) {
System.out.println(e);
}
}
Ceci est mon image Activité
public class ImageClass {
int _id;
byte[] _image;
String _state_name;
public ImageClass(){
}
public ImageClass(int state_id,String state_name, byte[] state_image) {
this._id = state_id;
this._state_name = state_name;
this._image = state_image;
}
public ImageClass(String state_name, byte[]state_image){
this._state_name = state_name;
this._image = state_image;
}
public ImageClass(int state_id, byte[]state_image){
this._id = state_id;
this._image= state_image;
}
public int get_id() {
return this._id;
}
public void set_id(int state_id) {
this._id = state_id;
}
public byte[] get_image() {
return this._image;
}
public void set_image(byte[] state_image) {
this._image = state_image;
}
public String get_state_name() {
return this._state_name;
}
public void set_state_name(String set_state_name) {
this._state_name = set_state_name;
}
Son vraiment été frustrant moi depuis. essayé beaucoup de choses en ligne, juste ne pourrais pas trouver la bonne façon ...
chemin droit est de stocker chemin de l'image dans la base de données au lieu fichier image –
Convenu. Stocker de gros blobs dans SQLite n'est pas recommandé. – CommonsWare
Appuyant les commentaires ci-dessus. Enregistrez votre image dans le dossier [Stockage interne] (https://developer.android.com/guide/topics/data/data-storage.html#filesInternal) de votre application et enregistrez une référence au chemin du fichier dans votre base de données à la place. –