안드로이드 레이아웃

반응형

1. 뷰(View)

뷰의 계층

안드로이드 응용 프로그램의 화면을 구성하는 주요 단위인 액티비티는 화면에 직접적으로 보이지 않으며, 액티비티 안의 뷰가 사용자를 대면하는 실체이다.

여러 개의 뷰가 모여 하나의 액티비티를 구성하고, 이러한 액티비티가 모여 하나의 응용 프로그램이 된다.

레이아웃은 액티비티 안에 뷰를 배치하는 기법을 말한다.

위젯 : 직접적으로 보이며 사용자 인터페이스를 구성하며, 흔히 컨트롤이라고 부른다.

뷰 그룹 : 뷰를 담는 컨테이너 역할을 하며, 이 부류의 클래스들을 레이아웃이라고 한다.

 

뷰 그룹이면서도 위젯처럼 사용되기도 하는 클래스도 있으며, 특정 위젯을 상세히 알고 싶다면 그 슈퍼 클래스들부터 연구해야 한다.

서브 클래스는 슈퍼 클래스의 모든 속성을 상속받는다.

 

위젯의 계층

View도 자바 클래스의 일종이므로 루트인 Object로부터 파생된다.

View로부터 직접 파생되는 모든 클래스가 바로 위젯이며 스스로를 그릴 수 있는 능력을 가지고 있다.

 

뷰 그룹의 계층

View로부터 파생된 ViewGroup의 서브 클래스이다.

다른 뷰들을 차일드로 포함하며 차일드를 정렬하는 기능을 가진다.

 

View의 속성

id

뷰를 칭하는 이름을 정의하며, 코드나 XML 문서에서 뷰를 참조할 때 id를 사용하므로 직관적인 이름을 붙이는 것이 좋다.

형식 : @[+]id/ID

    - @ : id를 리소스(R.java)에 정의하거나 참조한다는 뜻이며, 무조건 붙여야 한다.

    -  + : ID를 새로 정의한다는 뜻이며, 참조 시는 생략 가능하다.

    - id : 예약어

    -  /  : 뒤에 원하는 이름을 작성하되, ID는 고유한 명칭이므로 명령 규칙에 맞아야 하며,          뷰끼리 중복되어서는 안된다.

     ex) android:id=“@+id/name” : 텍스트 뷰에 name이라는  id를 부여함.

 

XML 문서에 ID를 지정하면 이 이름이 R.java에 정수형 상수로 정의된다.

코드에서 뷰를 참조할 시 findViewById 메서드 호출, 인수로 참조할 뷰의 id를 전달한다.

모든 뷰에 id를 의무적으로 지정할 필요는 없으며, 코드에서 참조할 필요 없는 위젯은 보통 id를 생략한다.

 

View의 속성

layout_width, layout_height

뷰의 폭과 높이를 지정하며, 수평, 수직 각 방향에 대해 크기를 지정할 수 있다.

속성값으로 아래의 세 가지 중 하나의 값을 가진다.

    - fill_parent : 부모의 주어진 크기를 다 채운다.

    - wrap_content : 내용물의 크기만큼만 채운다.

    - 정수 크기 : 지정한 크기에 맞춘다.

 

ex) “Start”라는 캡션을 가지는 버튼 배치

 

지정한 크기가 액면대로 다 받아들여지지 않으며, 주위 다른 위젯들의 크기에 영향을 받는다.

명시적인 크기 지정 시 정수 하나와 단위를 지정하는 예약어를 같이 사용하며, 이 이 단위는 크기를 지정하는 모든 속성에 공통적으로 적용된다.

단위 : px, in, mm, pt, dp (또는 dip), sp (또는 sip)

View의 속성

background

뷰의 배경을 지정하며, 색상 및 이미지 등의 여러 가지 객체로 지정 가능하다.

색상 지정 시 네 가지 형식이 적용되며, 배경뿐만 아니라 색상을 지정하는 모든 속성에 적용된다.

    - #RGB

    - #ARGB

    - #RRGGBB

    - #AARRGGBB

     ex) #ff0000 (#f00): 빨간색,  #0000ff : 파란색

 

padding

뷰와 내용물간의 간격을 지정한다. (즉 안쪽 여백)

padding 속성 값을 지정하여 4방향에 대한 여백을 조절할 수 있다.

속성값 : paddingLeft, paddingTop, paddingRight, paddingBottom

 

View의 속성

visibility

뷰의 표시 유무를 지정하며, 속성값으로 아래의 세 가지 중 하나의 값을 가진다.

    - visible : 보이는 상태임.

    - invisible : 숨겨진 상태이되 자리는 차지함.

    - gone : 숨겨지며 자리도 차지하지 않음.

 

clickable, longClickable

마우스 클릭 이벤트를 받을 것인지, 롱클릭 이벤트를 받을 것인지를 지정한다.

    - click : 손가락으로 뷰를 누름

    - longClick: 손가락으로 뷰를 누른 채 잠시 기다림

진위형이므로 true 또는 false 둘 중 하나의 값을 지정한다.

 

focusable

키보드 포커스를 받을 수 있는지를 지정한다.

디폴트 값으로 false가 설정되어 있으며, 필요 시 속성을 true로 변경한다.

에디트나 버튼처럼 사용자의 입력이 필요한 파생 클래스는 디폴트로 true가 지정되어 있다.

 

 

 

반응형

댓글

Designed by JB FACTORY