从图库进入回收视图时如何区分视频和图像?

How to differentiate between videos and images when getting from gallery into a recyclerview?

我想从 phone 图库获取图像和视频并显示在回收站中。在 recyclerview 适配器中,我有两种视图类型,一种用于显示图像,另一种用于显示视频。但是我不知道如何设置视频和图像之间的检查以区分两种视图类型。

这就是我从画廊获取图像的方式,并且工作正常。但是,如果我也得到这样的视频并想将它们设置为其他视图类型,只需说 videoview.

//method to get the list of images from gallery
private ArrayList<String> getAllShownImagesPath(Activity activity) {
    Uri uri;
    Cursor cursor;
    int column_index_data, column_index_folder_name;
    ArrayList<String> listOfAllImages = new ArrayList<String>();
    String absolutePathOfImage = null;
    uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

    String[] projection = {MediaStore.MediaColumns.DATA,
            MediaStore.Images.Media.BUCKET_DISPLAY_NAME};


    cursor = activity.getContentResolver().query(uri, projection, null,
            null, null);

    column_index_data = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
    column_index_folder_name = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
    while (cursor.moveToNext()) {
        absolutePathOfImage = cursor.getString(column_index_data);

        listOfAllImages.add(absolutePathOfImage);
    }
    return listOfAllImages;
}

请指导我如何使用单个光标或方法从图库中获取所有视频和图像,并在 recyclerview 中以不同的视图类型显示它们。

您可以在 recyclerview 中获取从图库中检索到的媒体的 MIME 类型。 https://developer.android.com/reference/android/webkit/MimeTypeMap ,参考这个官方文档。这是处理媒体文件的明确解决方案。试一试。