Android 摄像头和在SQL数据库中保存图像

Android 摄像头和在SQL数据库中保存图像,android,Android,我想打开相机再点击一下。很好用。现在拍完照片后,我不想把那张照片保存在画廊里。我想将该图片保存在sql数据库中要在数据库中插入图像,请编写以下代码: public class CameraHandler implements PictureCallback { ..... @Override public void onPictureTaken(byte[] data, Camera camera) { insertImageInDB(data); } public void

我想打开相机再点击一下。很好用。现在拍完照片后,我不想把那张照片保存在画廊里。我想将该图片保存在sql数据库中

要在数据库中插入图像,请编写以下代码:

public class CameraHandler implements PictureCallback {
.....
 @Override
 public void onPictureTaken(byte[] data, Camera camera) {
       insertImageInDB(data);
}

public void insertImageInDB(byte[] theImageBytes){
    SQLiteDatabase db               =   dbHelper.getWritableDatabase();

    String sql                      =   "INSERT INTO MY_IMAGES (image_id,other_data,the_image) VALUES(?,?,?)";
    SQLiteStatement insertStmt      =   db.compileStatement(sql);
    insertStmt.bindString(1, id);
    insertStmt.bindString(2,otherData);
    insertStmt.bindBlob(3, theImageBytes);
    insertStmt.executeInsert();
    db.close();
}

}

你想在数据库中存储整个图片而不是它的路径,有什么原因吗?我想存储一些其他值,比如图片的拍摄位置,照片中的朋友。等等。不,将整张照片保存在数据库中并不困难。我可以将其存储在gallery中,但我必须在gallery中创建一个单独的文件夹。我已将答案的片段放在gallery中,希望它们能帮到我,但我仍然认为最好的解决方案是在gallery中创建一个文件夹,并将路径放在DB@user1950815:假设您将使用内置的SQLite功能,我建议不要将整个图像存储在数据库中。我同意Dany的观点,您应该将图像保存到内部或外部存储器中,只需将图像文件的路径放入数据库中即可。如果您不希望这些图像出现在stock Gallery应用程序中,请在存储它们的文件夹中创建一个名为
.nomedia
的空文件。