【Kotlin】ギャラリーから写真を選択する

Kotlinでギャラリーから写真を選択する方法をご紹介します。

Androidのインテント(ACTION_OPEN_DOCUMENT)を使います。

ユーザさんが写真を選択すると、選択した写真のURI(content:~~)が返ってくるので、ImageViewに表示するようにしています。

    //ギャラリーから写真選択
    private val selectPhotoLauncher = registerForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { result ->
        Log.d("registerForActivity", result.toString())

        if (result.resultCode != RESULT_OK) {
            return@registerForActivityResult
        } else {
            try {
                result.data?.data?.also { uri: Uri ->
                    imageView?.setImageURI(uri)
                }
            } catch (e: Exception) {
                Toast.makeText(this, "エラーが発生しました", Toast.LENGTH_LONG).show()
            }
        }
    }

    private fun dispatchPickPhotoIntent() {
        val pickPhotoIntent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
            type = "image/*"
        }

        selectPhotoLauncher.launch(pickPhotoIntent)
    }

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog