就像iPhone有一个UIImagePickerController让用户访问存储在设备上的图片一样,Android SDK中是否有类似的控件?
谢谢.
您可以使用startActivityForResult
,传入描述要完成的操作的Intent以及执行操作的数据源.
幸运的是,Android包括一个用于拾取东西的动作: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 } }
获得图像后,您可以使用它来访问图像并执行您需要做的任何事情.
你也可以这样做:
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, 1);
这将在所有存储中选择图像.