06-1 화면을 구성하는 방법
액티비티 - 뷰 구조
pg. 141
- 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더 4개의 컴포넌트 중 화면을 출력하는 컴포넌트는 액티비티
- 액티비티가 실행되면서 뷰 클래스를 이용해 화면을 구성, 이를 기기의 화면에 출력
액티비티 코드로 화면 구성하기
pg. 142
액티비티 코드로 작성
- 화면을 구성하는 뷰 클래스를 액티비티 코드에서 직접 생성
- 뷰 객체를 코드로 직접 생성, 데이터 일일이 객체에 대입
- LinearLayout 객체를 액티비티 컴포넌트의 함수인 SetContentView()로 전달해 화면 출력
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 이름 문자열 출력 TextView 생성
val name = TextView(this).apply {
typeface = Typeface.DEFAULT_BOLD
text = "Lake Louise"
}
// 이미지 출력 ImageView 생성
val image = ImageView(this).also {
it.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.lake_1))
}
// 주소 문자열 출력 TextView 생성
val address = TextView(this).apply {
typeface = Typeface.DEFAULT_BOLD
text = "Lake Louise, AB, 캐나다"
}
val layout = LinearLayout(this).apply {
orientation = LinearLayout.VERTICAL
gravity = Gravity.CENTER
// LinearLayout 객체에 TextView, ImageView, TextView 객체 추가
addView(name, WRAP_CONTENT, WRAP_CONTENT)
addView(image, WRAP_CONTENT, WRAP_CONTENT)
addView(address, WRAP_CONTENT, WRAP_CONTENT)
}
// LinearLayout 객체를 화면에 출력
setContentView(layout)
}
}
레이아웃 XML 파일로 작성
- View를 XML 태그로 명시해 화면 구성
- 코드에서 화면을 구현한 XML을 명시해 어떤 화면을 출력할지 알려줘야 함
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lake Louise"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lake_1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lake Louise, AB, 캐나다"
android:textStyle="bold" />
</LinearLayout>
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
화면 구현은 XML 파일로 분리하고,
액티비티에서는 네트워킹, 데이터 핸들링, 사용자 이벤트 처리 등의 코드만 작성하는 것이 더 효율적
06-2 뷰 클래스
반응형
'Android > 깡샘의 안드로이드' 카테고리의 다른 글
| [깡샘의 안드로이드] 02 안드로이드 앱의 기본 구조 (0) | 2022.04.24 |
|---|---|
| [깡샘의 안드로이드] 01 개발 환경 준비하기 (0) | 2022.04.24 |
댓글