启动图库
如果你想从设备的图库中选择一张图片,你可以这样做:
Intent galleryPickerIntent = new Intent();
galleryPickerIntent.setType("image/*");
galleryPickerIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(galleryPickerIntent, "Select an Image"), 203); // Can be any int
这会启动一个新活动,我们希望它会给我们一些结果(在这种情况下,它将是一个图像Uri)。
一个常见的用例是在用户单击按钮时启动图库:
View.OnClickListener openGalleryButtonListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryPickerIntent = new Intent();
galleryPickerIntent.setType("image/*");
galleryPickerIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(galleryPickerIntent, "Select an Image"), 203); // Can be any int
}
};
mOpenGalleryButton.setOnClickListener(openGalleryButtonListener);
此代码将直接打开图库,或首先向用户显示一个选择器,让他们选择将哪个应用用作图像源。
接收结果
要接收用户选择的图像,我们将使用onActivityResult() 方法:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mAuthSessionHelper.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 203) { // the int we used for startActivityForResult()
// You can do anything here. This is just an example.
mSelectedImageUri = data.getData();
mSelectedImageView.setImageURI(mSelectedImageUri);
}
}
我在if 块中放了一些示例代码,但你在那里做什么将取决于你的应用程序。