Как добавить сфотографированную фото в базу данных sqlite и после выхода активити показать фото
Весь этот код открываем камеру
private void checkCameraPermissionAndOpen() {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(cameraIntent, REQUEST_TAKE_PHOTO);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap thumbnailBitmap = (Bitmap) extras.get("data");
imageView_ph.setImageBitmap(thumbnailBitmap);
}
}
Здесь вроде должно сохраняться фото в таблицу
Но я не уверен что это правильно
Сам проверял ничего не получалось
Подскажите те у кого получилось сохранить фото в базу данных sqlite
public byte[] getBytesFromBitmap(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
return stream.toByteArray();
}
public void insertImage(String name, Bitmap bitmap) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("image", getBytesFromBitmap(bitmap));
db.insert("images", null, cv);
db.close();
}
public Bitmap getImage(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query("images", new String[]{"image"}, "id=?", new String[]{String.valueOf(id)}, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
byte[] bytes = cursor.getBlob(0);
cursor.close();
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
return null;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(" CREATE TABLE " + TABLENAME + "(" + ID + " INTEGER PRIMARY KEY, "
+ DATA_NAME_DOG + " TEXT, "
+ DATA_AGE_DOG + " TEXT, "
+ DATA_SEX_DOG + " TEXT, "
+ IMAGE_DOG + " BLOB " + ")");
}