sta*_*ack 13 video android android-gallery
在我的项目中,我想按一下按钮打开一个图库,应该可以选择图像或视频来获取它们的路径.
Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
Run Code Online (Sandbox Code Playgroud)
从上面的代码我能够打开画廊,但在这种情况下,我只能选择图像.所以,请帮助我选择视频.提前致谢.
Jc *_*rro 18
您可以使用下一个代码段:
Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT);
//comma-separated MIME types
mediaChooser.setType("video/*, image/*");
startActivityForResult(mediaChooser, RESULT_LOAD_IMAGE);
Run Code Online (Sandbox Code Playgroud)
但我认为它只适用于ICS或更大
YYa*_*mil 14
在Android 6.0及更高版本上使用"video/*image/"或"image / video/*"类型不起作用时,它只识别您指定的第一个过滤器.我用这段代码解决了这个问题:
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("*/*");
photoPickerIntent.putExtra(Intent.EXTRA_MIME_TYPES, new String[] {"image/*", "video/*"});
startActivityForResult(photoPickerIntent, Constants.SELECT_PHOTO);
Run Code Online (Sandbox Code Playgroud)
虽然这会询问用户他们想要使用哪个应用来选择图像/视频.
KIL*_*ILA 10
您需要使用以下内容作为选择Intent
Intent photoLibraryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
photoLibraryIntent.setType("image/* video/*");
Run Code Online (Sandbox Code Playgroud)
下面的代码解决了我的问题
final Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("*/*");
startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE);
Run Code Online (Sandbox Code Playgroud)
小智 5
没有足够的代表发表评论,但@YYamil 的回应效果很好。
Intent mediaChooser = new Intent(Intent.ACTION_GET_CONTENT);
//comma-separated MIME types
mediaChooser.setType("video/*, image/*");
startActivityForResult(mediaChooser, RESULT_LOAD_IMAGE);
Run Code Online (Sandbox Code Playgroud)
如果您正在使用新的registerForResultActivity,请创建一个副本ActivityResultContracts.GetMultipleContents()
并放入createIntent
:
@CallSuper
override fun createIntent(context: Context, input: String): Intent {
return Intent(Intent.ACTION_GET_CONTENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType(input)
.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
.putExtra(Intent.EXTRA_MIME_TYPES, arrayOf("image/*", "video/*")) // this does the trick
}
Run Code Online (Sandbox Code Playgroud)
2021 Android 9
这仅提供照片库和谷歌照片作为选项,您可以选择照片和视频。
我已经尝试了所有在线可用的方法,但不小心混合了两种结果有效的解决方案:
libraryIntent.setType("video/*, image/*");
String[] mimetypes = {"image/*", "video/*"};
libraryIntent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26952 次 |
最近记录: |