패스트캠퍼스 챌린지

[패스트캠퍼스 챌린지 4일차] Android 전자액자

어제 만들던 부분에서 추가된 점은 이미지 뷰 6개를 추가하고 권한 확인 후 이미지 선택하는 화면을 불러오는 작업을 하였습니다. 레이아웃 부분에서 이미지를 너비를 보고 높이를 결정하는 방법을 새롭게 알게 되었습니다. 코드를 보시면

<LinearLayout
        android:id="@+id/firstLinearLayout"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintDimensionRatio="H,3:1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/imageView11"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="centerCrop" />

        <ImageView
            android:id="@+id/imageView12"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="centerCrop" />

        <ImageView
            android:id="@+id/imageView13"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:scaleType="centerCrop" />
    </LinearLayout>

LinearLayout 부분 설정에서

app:layout_constraintDimensionRatio="H,3:1"

H, 3:1의 값을 넣음으로써 W(너비)를 보고 높이를 3:1 비율로 결정하였습니다.

 

override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        when(requestCode){
            1000 -> {
                if(grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    navigatePhotos()
                }
            }else -> {
                Toast.makeText(this,"권한을 거부하셨습니다.",Toast.LENGTH_SHORT).show()

            }
        }
    }

MainActivity 부분에서는 onRequestPermissionsResult 함수를 추가하였습니다. requestCode가 1000인 함수를 실행시키면 권한을 확인한 후 navigatePhotos함수를 실행시켜주었습니다.

private fun navigatePhotos() {
        val intent = Intent(Intent.ACTION_GET_CONTENT)
        intent.type = "image/*"
        startActivityForResult(intent, 2000)
    }

navigatePhotos 함수에서는 intent를 startActivityForResult 함수로 전달해주었습니다.

 

 

 

패스트캠퍼스 바로가기 -> https://bit.ly/3FVdhDa

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.