你可以使用startActivityForResult,传入一个描述你想要完成的动作和数据源的意图。
幸运的是,Android 包含一个用于挑选东西的 Action:Intent.ACTION__PICK 和一个包含图片的数据源:
android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI 用于本地设备上的图像或
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI 用于 SD 卡上的图像。
调用startActivityForResult 传递选择操作和您希望用户从中选择的图像,如下所示:
startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);
然后覆盖onActivityResult 以监听已做出选择的用户。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SELECT_IMAGE)
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
// TODO Do something with the select image URI
}
}
获得图像 Uri 后,您可以使用它来访问图像并使用它做任何您需要做的事情。