我的uri对象包含图像的真实路径。我知道我们需要在查询时使用选择字符串,但我在sql上很糟糕。
如何让光标代表该图像?
这是我DTO的投影字符串。
String[] projection = {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATA,
MediaStore.Images.ImageColumns.WIDTH,
MediaStore.Images.ImageColumns.HEIGHT,
MediaStore.Images.ImageColumns.MIME_TYPE};
Uri从裁剪库返回。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {
final Uri resultUri = UCrop.getOutput(data);
} else if (resultCode == UCrop.RESULT_ERROR) {
final Throwable cropError = UCrop.getError(data);
}
}
感谢您的帮助。
答案 0 :(得分:2)
通常,Uri
不必表示文件系统上的文件,更不用说有一个可以确定的路径,更不用说是一个可以访问的文件了。
对于方案为Uri
的{{1}},file
返回文件的文件系统路径。但是,您可能无法通过文件系统读取或写入该文件(尽管这表示创建getPath()
并将其提供给您的人员编码错误。)
对于任何其他类型的Uri
- 最常见的是具有Uri
方案的那些 - 无法确定文件系统路径,因为不要求内容是普通文件。它可能是加密文件,存储在数据库中content
列中的内容,要从网络下载的内容,或无数其他模式。