如何打开图库来选择图像?

时间:2017-10-18 12:41:17

标签: java android image photo-gallery

我正在寻找一种方法来打开onClick图库来选择图片。 我想在图片列表视图中使用本地“上传”图片。 有人可以帮助并解释我如何做到这一点。我是Android开发的初学者。

public void pickImage() {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("image/*");
    startActivityForResult(intent, PICK_PHOTO_FOR_AVATAR);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PICK_PHOTO_FOR_AVATAR && resultCode == Activity.RESULT_OK) {
        if (data == null) {
            //Display an error
            return;
        }
        InputStream inputStream = context.getContentResolver().openInputStream(data.getData());
        //Now you can do whatever you want with your inpustream, save it as file, upload to a server, decode a bitmap...
    }
}

1 个答案:

答案 0 :(得分:0)

以下是我在我的应用中使用的代码

Intent pickImageIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(pickImageIntent, PICKIMAGE_REQUESTCODE);

在onActivity结果方法

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {

            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == PICKIMAGE_REQUESTCODE) {
                if (resultCode == RESULT_OK) {
                    Uri imageUri = data.getData();
                    InputStream inputStream = null;


                    try {
                        inputStream = getContentResolver().openInputStream(imageUri);
                       bitmap = BitmapFactory.decodeStream(inputStream);
                    } 
                   catch (FileNotFoundException e) 
                     {
                        e.printStackTrace();
                    } finally {
                        try {
                            inputStream.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                            Log.d(TAG, "onActivityResult: error closing InputStream during reading image from the phone external storage");
                        }

                    }
    }