在sqlite数据库中保存图像URI

时间:2013-12-19 21:48:38

标签: android

我可以将图像URI存储在sql DB中,以便稍后可以检索它以显示图像吗?或者它必须是完全的绝对路径?

谢谢

2 个答案:

答案 0 :(得分:1)

您确定可以将其存储在数据库中,将其转换为字符串并在您想要使用时将其转换回来

答案 1 :(得分:0)

是的,你可以。

例如,如果你选择/拍摄图像,你将启动选择器/摄像头意图,你将得到onActivityResult的结果,在这里你应该得到图像uri。

如果用户从图库中选择,则应执行以下操作以获取uri。

String imageUri = null;
Cursor cursor = mContext.getContentResolver().query(uri, new String[] {android.provider.MediaStore.Images.ImageColumns.DATA}, null, null, null);
cursor.moveToFirst();
if (cursor != null) {
    imageUri = cursor.getString(0);
}

cursor.close();

现在,保存imageUri

如果用户从相机拍摄图像;

File photoFile = new File("your directory", "name");

Intent takePicIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePicIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
startActivityForResult(takePicIntent, ACTION_TAKE_PHOTO);

然后,在onActivityResult

String imageUri = photoFile.getPath();

并保存!