본문 바로가기
공부/Android

Android - XML파일 없이 화면 그리는 법

by hhhello 2024. 7. 1.

처음 Android공부를 시작한 작년 학기초 때가 생각난다. XML코드를 보고 어찌나 흉측스러운지.. ‘android:’라는 중복되는 코드. 속성이 카멜케이스가 아니다. xmlns:OOO 부터 시작하는 이상한 URL. XML이라는 틀딱 포맷. 참을수가 없었다.

XML없이 코드로 화면을 짜보자. 선언형이라는 점을 제외하고는 네이밍을 포함하여 거의 유사한 모습이다. 약간 iOS의 UIKit에서 코드로 View를 짜는 느낌이 들었다.

View코드를 작성하고 마지막으로 setContentView안에 layout을 넣어주면 끝이다.

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()

        val name = TextView(this).apply {
            text = "일론 머스크"
        }

        val image = ImageView(this).apply {
            setImageDrawable(ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_launcher_background))
        }

        val layout = LinearLayout(this).apply {
            orientation = LinearLayout.VERTICAL
            gravity = Gravity.CENTER

            addView(name, WRAP_CONTENT, WRAP_CONTENT)
            addView(image, WRAP_CONTENT, WRAP_CONTENT)
        }

        setContentView(layout)
    }
}

짜잔. 정상적으로 화면이 그려지는 모습이다.

앞으로 좀 더 연구해봐야겠다.

XML없이 코드로 화면을 짜보자. 선언형이라는 점을 제외하고는 네이밍을 포함하여 거의 유사한 모습이다. 약간 iOS의 UIKit에서 코드로