如何将二进制格式的图像保存到数据库中,还可以从android中的数据库中读取数据?

时间:2014-05-05 17:31:48

标签: android sqlite android-imageview android-image

我想从相机拍摄图像然后将图像保存在SD卡文件夹中,但路径保存在SqLite数据库中,并且还以二进制格式保存图像。此外,当从数据库中读取时,然后在ImageView或GridView中显示图像。任何有关于此的资源或示例或教程链接。如果有人给我任何资源,或示例或教程链接。这对我很有帮助。

1 个答案:

答案 0 :(得分:0)

您可以将任务拆分为三个独立的部分:

1. Take a picture from camera
2. Save it to a file and take the path
3. Store the path from point two in your database

第1部分和第2部分:

final int IMAGE_FROM_CAMERA = 0;
Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePicture, IMAGE_FROM_CAMERA);

在onActivityResult()......

if (resultCode == RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
String path = getRealPathFromURI(selectedImage);
}

...

public String getRealPathFromURI(Uri contentUri) {
    String path = null;
    String[] proj = { MediaStore.MediaColumns.DATA };
    Cursor cursor = getContentResolver().query(contentUri, proj, null,
            null, null);
    if (cursor.moveToFirst()) {
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
        path = cursor.getString(column_index);
    }
    cursor.close();
    return path;
}

对于第3部分,只需在数据库中写入字符串path相应的字段即可。开放很容易,因为你有路径,只需从路径打开一个流,做一些转换并获取你的图像。