String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA}; String sortOrder = MediaStore.Images.Media._ID + " DESC"; Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, sortOrder);
时间: 2024-03-04 20:54:04 浏览: 141
这段代码是查询Android系统中存储的图片信息。其中,`MediaStore.Images.Media._ID`表示图片在媒体库中的唯一标识符,`MediaStore.Images.Media.DATA`表示图片在存储设备上的物理路径。`projection`数组是用来指定查询返回的列,`sortOrder`是用来指定查询结果的排序方式。`getContentResolver().query()`方法执行查询操作,其中`MediaStore.Images.Media.EXTERNAL_CONTENT_URI`表示查询外部存储器中的图片。查询结果会以`Cursor`对象的形式返回。
相关问题
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Log.d("onActivityResult","success"); // if (resultCode == RESULT_OK) { // 如果返回数据 if (requestCode == REQUEST_IMAGE_CAPTURE) { try { //查询的条件语句 String selection = MediaStore.Images.Media.DISPLAY_NAME + "=? "; //查询的sql //Uri:指向外部存储Uri //projection:查询那些结果 //selection:查询的where条件 //sortOrder:排序 Log.d("onActivityResulttry","success"); Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Images.Media._ID} ,selection,new String[]{fileName},null); Log.d("onActivityResultcursor","success"); if (cursor != null && cursor.moveToFirst()) { do { Uri uri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, cursor.getLong(0)); Log.d("luingssd","@"+uri); ivShowPicture = findViewById(R.id.image_view_2); ivShowPicture.setImageURI(uri); }while (cursor.moveToNext()); }else { Toast.makeText(this,"no photo",Toast.LENGTH_SHORT).show(); } } catch (Exception e) { e.printStackTrace(); } } }
这段代码是在 Activity 接收到从其他页面返回的结果后,执行的回调函数。在该函数中,首先判断返回结果是否成功(resultCode == RESULT_OK),然后根据请求码(requestCode)判断返回的是哪个操作的结果。如果是拍照操作(REQUEST_IMAGE_CAPTURE),则根据文件名查询系统相册中的图片,并将其显示在 ImageView 控件中。通过 getContentResolver().query() 方法查询系统相册中的图片,得到其 Uri,再将 Uri 传递给 ImageView 控件的 setImageURI() 方法进行显示。
getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, sortOrder);几个参数分别是什么意思
`getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, selection, selectionArgs, sortOrder)` 方法中的参数含义如下:
- `MediaStore.Images.Media.EXTERNAL_CONTENT_URI`:表示查询的数据类型为外部存储器中的图片。
- `projection`:指定查询返回的列,即需要查询哪些字段。例如,`new String[]{MediaStore.Images.Media._ID, MediaStore.Images.Media.DISPLAY_NAME}` 表示返回图片在 MediaStore 中的唯一标识符 `_ID` 和显示名称 `DISPLAY_NAME`。
- `selection`:指定查询条件,即需要查询哪些行。例如,`MediaStore.Images.Media.DATE_TAKEN > ?` 表示查询拍摄时间晚于指定时间的图片。
- `selectionArgs`:指定查询条件中的参数值。例如,`new String[]{"2019-01-01"}` 表示查询拍摄时间晚于 2019 年 1 月 1 日的图片。
- `sortOrder`:指定查询结果的排序方式。例如,`MediaStore.Images.Media.DATE_TAKEN DESC` 表示按照拍摄时间降序排列查询结果。
综上所述,该方法的作用是查询外部存储器中符合指定条件的图片,并返回指定的列,按照指定的排序方式排列查询结果。
阅读全文