1. 준비물

이미지 갤러리를 열 수 있게 버튼을 만들어서 가져오겠습니다.


        mGetImageFromGalleryButton = (ImageView) view.findViewById(R.id.btn_getgallery);
 
cs


여기에 setOnClickListener를 달아줍니다.


        mGetImageFromGalleryButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            }
        });
cs


onClick() 안에 원하는 것을 채워주겠습니다.


2. 권한 획득 후 실행


                if(ActivityCompat.checkSelfPermission(getActivity(),
                        Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
                {
                    requestPermissions(
                            new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                            2000);
                }
                else {
                    startGallery();
                }
cs


이렇게 하면 권한 획득을 구현하게 됩니다. 권한이 있으면 자동으로 startGallery() 함수를 호출합니다.

지금까지 구현한 코드의 마지막에 써줘야 할 것이 있습니다.


        return view;
cs


이렇게 마무리 해주지 않으면 코드가 정상적으로 작동하지 않습니다.

갤러리를 열 때 필요한 코드가 또 있습니다.


    private void startGallery() {
        Intent cameraIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        cameraIntent.setType("image/*");
        if (cameraIntent.resolveActivity(getActivity().getPackageManager()) != null) {
            startActivityForResult(cameraIntent, 1000);
        }
    }
cs


이 부분의 코드가 있어야 Intent를 이용해서 열 수 있습니다. Intent 는 새 화면이라고 생각하시면 됩니다.


+ Recent posts