图库意图仅显示图像或视频而不是两者?
Posted
技术标签:
【中文标题】图库意图仅显示图像或视频而不是两者?【英文标题】:Gallery intent shows only image or video not both? 【发布时间】:2015-10-03 15:21:27 【问题描述】:我正在尝试允许用户从他的设备中选择图像或视频,目前它仅显示视频或图像,具体取决于以下代码中首先写入的内容:
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
//set type to include video too
galleryIntent.setType("image/*, video/*");
startActivityForResult(galleryIntent, GALLERY_IMAGE_REQUEST_CODE);
;
不确定我做错了什么,但 setType 似乎是正确的,我尝试在图像和视频之间使用和不使用逗号...
【问题讨论】:
@find 任何解决方案? 【参考方案1】: case 2: //Choose Pic
Intent choosePhotoIntent = new Intent(Intent.ACTION_GET_CONTENT);
choosePhotoIntent.setType("image/*");
startActivityForResult(choosePhotoIntent, PICK_PHOTO_REQUEST);
break;
case 3: //Choose Video
Intent chooseVideoIntent = new Intent(Intent.ACTION_GET_CONTENT);
chooseVideoIntent.setType("video/*");
Toast.makeText(MyActivity.this,getString(R.string.video_message), Toast.LENGTH_LONG).show();
startActivityForResult(chooseVideoIntent, PICK_VIDEO_REQUEST);
break;
试试上面..你需要有单独的选项..
【讨论】:
【参考方案2】:我遇到了同样的问题,它只使用列表中的第一个 MIME 类型。
这最终对我有用:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("*/*");
String[] mimeTypes = "image/*", "video/*";
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
startActivityForResult(intent, REQUEST_CODE_CAMERA_ROLL);
【讨论】:
【参考方案3】:这对我有用:
Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_MEDIA);
【讨论】:
以上是关于图库意图仅显示图像或视频而不是两者?的主要内容,如果未能解决你的问题,请参考以下文章
如何在分页 UIScrollView 中显示确定的项目,而不是仅从 0 加载它