[kotlin] intent로 이미지 넘기기

유지훈·2022년 6월 10일
0

kotlin 과거

목록 보기
7/19
post-custom-banner

액티비티는 화면을 구성하는 컴포넌트이다. 따라서 한 액티비티를 인텐트로 실행하면 화면이 전환된다. 이때 고려할 사항이 있다. 어떤 액티비티가 다른 액티비티를 실행해 화면이 전환되었을 때 의도에 따라 화면을 되돌리거나 되돌리지 않을 수도 있다.

  • startActivity(Intent intent)
  • startActivityForResult(Intent intent)

startActivityResultForesult() -> 사용자가 뒤로가기 버튼을 누르지 않고 자동으로 화면을 되돌릴 때는 finish() 함수를 이용한다.

intent.putEXtra("data", 10)
setResult(RESULT_OK, intent)
finish()

요청을 제대로 처리했으면 RESULT_OK, 아니면 RESULT_CANCELED 등 상수로 지정한다.

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
  • requestCode : 인텐트를 시작한 곳에서 인텐트를 구분하려고 설정한 요청 코드이다.
  • resultCode : 인텐트로 실행된 곳에서 돌려받은 결과 코드이다.
  • data : 인텐트 객체다. 이 객체에 결과 데이터가 있다.

외부 앱에서 이미지 가져오기

val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.type = "image/*"
startActivity(intent, 1000)

위 코드는 이미지를 intent를 통해 외부 앱(갤러리)에서 가져오려고 할 때 사용되는 코드이다.
여러 장의 이미지를 한 번에 가져오려고 할 때는 아래와 같이 코드를 작성할 수 있다.

val intent = Intent(Intent.ACTION_PICK)
intent.data = MediaStore.Images.Midea.EXTERNAL_CONTENT_URI
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
intent.action = Intent.ACTION_GET_CONTENT
startActivityForResult(intent, 1000)
profile
RPA, Android App
post-custom-banner

0개의 댓글