Android 在sqllite数据库中保存图像URI

Android 在sqllite数据库中保存图像URI,android,Android,我是否可以将图像URI存储在sql DB中,以便稍后检索它以显示图像?或者它总是必须是完整的绝对路径 谢谢您确实可以将其存储在数据库中,将其转换为字符串,并在需要时将其转换回是的,您可以 例如,如果您拾取/拍摄图像,您将启动picker/camera intent,并将在ActivityResult中获得结果,在这里您将获得图像uri 如果用户从库中选择,则应执行以下操作以获取uri String imageUri = null; Cursor cursor = mContext.getCont

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


谢谢

您确实可以将其存储在数据库中,将其转换为字符串,并在需要时将其转换回

是的,您可以

例如,如果您拾取/拍摄图像,您将启动picker/camera intent,并将在ActivityResult中获得结果,在这里您将获得图像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();

并且保存它

所以图像的uri内容永远不会改变,对吗?这就像一个文件路径,谢谢希沙姆。我的问题是在sqllite中放置URI,而不是如何获取URI