Изображения сохраняются в виде BLOB-й в Sqlitedatabase.
Для сохранения изображения в Базу данных
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getItemname());
values.put(KEY_DESCRIPTION, contact.getDescription());
Log.i("","Adding image of Type Bitmap"+contact.getImage());
if(contact.getImage()!=null) {
values.put(KEY_IMAGE, Utility.getBytes(contact.getImage()));
}
Где GetBytes (Bitmap) будет:
public static byte[] getBytes(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0, stream);
return stream.toByteArray();
}
В то время как извлечение изображения из базы данных:
if(cursor.getBlob(3)!=null)
{
contact.setImage(Utility.getPhoto(cursor.getBlob(3));
}
else
{
contact.setImage(null);
}
И getPhoto (BLOB) будет:
// convert from byte array to bitmap
public static Bitmap getPhoto(byte[] image) {
return BitmapFactory.decodeByteArray(image, 0, image.length);
}
Hi Mohamed, вы должны использовать Blobs. См. Ответ ниже http://stackoverflow.com/questions/11790104/how-to-storebitmap-image-and-retrieve-image-from-sqlite-database-in-android http://stackoverflow.com/questions/9357668/how-to-store-image-in-sqlite-database –