Android Photopicker可以在多个地方集成,以下是两种推荐的方法:
使用AndroidX Activity和Fragment中的Activity Result API
从Android 13(API 33)开始,官方提供了系统级图片选择器Photo Picker,无需申请权限,只需几行代码即可轻松接入。首先,确保你的项目依赖了最新版本的AndroidX Activity库:
dependencies { implementation 'androidx.activity:activity:1.8.2' }
然后,使用Activity Result API来调用Photo Picker。以下是一个简单的示例代码,展示了如何注册一个活动结果启动器,并在用户选择媒体后处理返回的结果:
// 注册照片选择器活动启动器 ActivityResultLauncherphotoPickerLauncher = registerForActivityResult(new PickVisualMediaRequest.Builder().build(), new ActivityResultContracts.ActivityResultCallback () { @Override public void onActivityResult(Uri uri) { if (uri != null) { // 用户选择了照片或视频 } else { // 用户没有选择任何内容 } } }); // 在需要的地方启动照片选择器 photoPickerLauncher.launch(new PickVisualMediaRequest.Builder().setType(MediaType.IMAGE_AND_VIDEO).build());
使用开源库
除了官方提供的系统级Photo Picker,还可以使用一些开源库来集成Photo Picker功能。例如,GalleryFinal
和ImagePicker
是两个流行的开源库,它们提供了丰富的功能和良好的兼容性。
- GalleryFinal:一个功能丰富的自定义相册,支持拍照、图片选择(单选/多选)、裁剪、旋转等功能。它还提供了高度可定制的主题和界面。
- ImagePicker:一个类似于微信的多图片选择库,支持拍照和从图库中选择图片,同时提供了丰富的定制选项。
通过上述方法,你可以根据自己的需求和技术栈选择合适的方式来集成Android Photopicker。