안녕하세요. 제임스 입니다.
이번 포스팅 부터는 사용자 인터페이스와 관련된 내용을 정리 하고자 합니다.
사용자 인터페이스에는 UI 구성을 위한 레이아웃, I/O 입출력 컨트롤, 이벤트 처리, 대화상자, 알림 등등 많은 내용들이 있습니다.
그중 UI 를 구성하는 레이아웃에 관한 이야기를 지금부터 시작해 볼까 합니다.
■ 사용자 인터페이스 레이아웃
안드로이드의 모든 사용자 인터페이스 요소들은 View 와 ViewGroup 객체를 사용하여 구축됩니다.
View 는 사용자가 상호작용을 할 수 있는 무엇인가를 화면에 그리는 객체입니다.
ViewGroup 은 인터페이스 레이아웃을 정의하기 위해 다른 View 및 ViewGroup 객체를 보유하는 객체입니다.
▶ ViewGroup 은 다른 ViewGroup 및 View 로 구성됩니다.
레이아웃을 만드는 방법은 크게 두가지가 있습니다.
하나는 View 객체를 인스턴스화 하여 구축하는 것과 XML 파일을 이용하여 레이아웃 구조를 만드는 방법입니다.
개발중에는 XML 파일을 이용하는 방법을 많이 사용하고 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.tutorial.james.androidtutorialtest.MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:text="TextView 위젯" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:text="Button 위젯"/>
</LinearLayout>
위 코드는 XML 파일로 구성한 레이아웃입니다.
LinearLayout 은 ViewGroup 을 상속받는 객체이며 UI 에서 LinearLayout 위젯을 생성합니다.
(참고 : https://developer.android.com/reference/android/widget/LinearLayout.html )
<TextView>는 UI에서 TextView 위젯을 생성합니다.
(참고 : https://developer.android.com/reference/android/widget/TextView.html )
<Button>은 UI에서 Button 위젯을 생성합니다.
(참고 : https://developer.android.com/reference/android/widget/Button.html )
Button 및 LinearLayout 은 android.widget 의 클래스 중 하나임을 보여주는 이미지 입니다 (Android API 참조)
UI 레이아웃에 대한 간략히 개념 잡기로 준비 했습니다.
UI 레이아웃 생성에 대한 디테일한 내용은 다음 회차에 다루도록 하겠습니다.
▼ 도움이 되셨다면 로그인이 필요 없는 ▼
▼ 하트 클릭 한번 부탁 드립니다 ▼
감사합니다 :D
'Android (Java)' 카테고리의 다른 글
[안드로이드 코딩_016] 안드로이드 뷰 계층 구조 (4) | 2017.09.22 |
---|---|
[안드로이드 코딩_015] 안드로이드 레이아웃 종류 (5) | 2017.09.21 |
[안드로이드 코딩_013] 안드로이드 해상도와 DP, DPI (489) | 2017.08.26 |
[안드로이드 코딩_012]안드로이드 리소스 (Android Resources) 2회 (492) | 2017.08.25 |
[안드로이드 코딩_011]안드로이드 리소스 (Android Resources) (494) | 2017.08.22 |