본문 바로가기

모바일/안드로이드

[Android Studio] Layout

안드로이드에서 코드와 디자인을 연결하는 방법

기능 코드는 java파일에 구현, 각종 디자인 관련 파일은 res 폴더 안에 저장

res 폴더 안의 파일들은 자동으로 아이디가 부여 -> 자바 코드에서 아이디를 이용하여 사용 가능

R.카테고리.아이디

 

카테고리 : 주로 res 안의 폴더 이름을 사용하며 string, color 등의 카테고리도 있다.

아이디 : 주로 확장자를 제외한 파일이름. 일부 xml 파일 안의 name 속성을 아이디로 사용하기도 한다.

           자동으로 아이디를 인식하므로 파일 이름은 영어 소문자와 _ 와 숫자만으로 작성한다

 

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

내부에 위젯들을 포함하여 다른 레이아웃 포함 가능

레이아웃 파일은 트리구조로 기술하며 최상위 항목은 반드시 레이아웃을 사용

 

레이아웃의 위젯의 기본 속성

android:layout_width : 너비 사이즈 지정 (필수 속성)

android:layout_height : 높이 사이즈 지정 (필수 속성)

 

  • match_parent: 부모의 사이즈에 맞춰 달라는 것으로 margin, padding을 적용한 나머지 공간을 가득 채움
  • warp_content: 위젯의 내용물 사이즈에 맞게 지정
  • 직접 수치 입력: 사이즈를 직접 지정하는 것으로 dp 단위를 사용

 

android:layout_margin : 부모 레이아웃이나 다른 위젯과의 간격

android:padding : 자기 자식 요소들과 경계와의 간격

 

 

android:gravity : 자식 요소 정렬 방법, 상하좌우에 대한 설정 -> | 연산자 사용

 

android:id : 레이아웃에서 다른 위젯을 배치하는 기준점으로 사용 시,

                자바 코드에서 이 위젯이나 레이아웃을 제어할 때 부여

                @+id/만들고 싶은 아이디  

                ex) @+id/userlist

 

자주 쓰는 레이아웃

Linear layout : 가로 또는 세로 한 방향으로만 위젯이나 자식 레이아웃을 추가할 수 있는 레이아웃

                   사용이 간편해 팝업 등에 사용하기에 좋다.

 

android:orientation : horizontal 또는 vertical 중 하나 사용

 

Relative layout : 다른 위젯이나 레이아웃을 참조하여 위치를 정하는 레이아웃

                     기존 프로젝트를 업데이트 하는 경우라면 만날 수 있다.

 

Constraint layout : 각 위젯의 제어점을 이용하여 위치를 정하는 레이아웃

                         최신 버전의 안드로이드 스튜디오를 사용해 프로젝트를 만들 경우 기본 레이아웃이다.

 

  • 각 레이아웃이나 위젯은 상,하,좌,우(Top, Bottom, Start, End) 의 제약점을 가짐
  • 이 제약점을 부모 레이아웃이나 다른 위젯 등에 두 방향(horizontal, vertical)을 연결해 자신의 위치 지정
  • 아이디로 상대를 지정하며 부모는 parent로 지정
  • ex) app:layout_constraintTop_toBottomOf="@+id/A"