안드로이드

[안드로이드] 갤러리에서 이미지 가져오기

loasd 2023. 1. 9. 16:43
반응형

https://github.com/lnjky/fashion_people

 

GitHub - lnjky/fashion_people: 패션 추천 어플

패션 추천 어플. Contribute to lnjky/fashion_people development by creating an account on GitHub.

github.com

코드 전체를 보려면 위에 링크를 통해 확인할 수 있습니다.


 

어플을 만들 때 갤러리를 통해 사진을 올려야할 때가 있다.

그래서 갤러리를 열어서 사진을 선택하고 그 사진을 특정 액티비티에 띄우거나 업로드하는 기능이 필요하다.

 

그 작업은 간단하다.

        iv_upload_image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityResult.launch(intent);
            }
        });

먼저 Intent를 사용하기 위해 이미지뷰나 버튼에 OnClickListener를 만들어주고 위의 코드를 작성해준다.

    ActivityResultLauncher<Intent> startActivityResult = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
        @Override
        public void onActivityResult(ActivityResult result) {
            if ( result.getResultCode() == RESULT_OK && result.getData() != null) {
                imageUri = result.getData().getData();
                try {
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
                    iv_upload_image.setImageBitmap(bitmap);		//이미지를 띄울 이미지뷰 설정
                }
                catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    });

그리고 위의 코드를 사용하기 알맞게 수정한 후 OnCreate 밖에 추가해주면 된다.

반응형