android 打开手机相册选择图片

记录一下

    @Override
    public void onClick(View v) {
        int id = v.getId();
        if (id == R.id.btn_album) {
            // 调用系统裁剪
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            startActivityForResult(intent, 1);  // 第二个参数是请求码
        }

    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case 1:  // 请求码
                    parseUri(data);
                    break;
            }
        } else {
            startActivity(new Intent(this, CameraActivity.class));
        }
    }
    public String parseUri(Intent data) {
        Uri uri = data.getData();
        String imagePath;
        // 第二个参数是想要获取的数据
        Cursor cursor = getContentResolver()
                .query(uri, new String[]{MediaStore.Images.ImageColumns.DATA},
                        null, null, null);
        if (cursor == null) {
            imagePath = uri.getPath();
        } else {
            cursor.moveToFirst();
            // 获取数据所在的列下标
            int index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
            imagePath = cursor.getString(index);  // 获取指定列的数据
            cursor.close();
        }
        return imagePath;  // 返回图片地址
    }

你可能感兴趣的:(android 打开手机相册选择图片)