从图库进入回收视图时如何区分视频和图像?
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 ,参考这个官方文档。这是处理媒体文件的明确解决方案。试一试。
我想从 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 ,参考这个官方文档。这是处理媒体文件的明确解决方案。试一试。