새소식

Android Studio[JAVA]

뷰의 기초 중요 속성

  • -

UI 구성을 레이아웃 XML로 작성할 떄 뷰 태그에 다양한 속성을 추가할 수 있으며, 속성들은 뷰에 따라 다르다. 

이번 시간에는 모든 뷰에 공통으로 지정할 수 있는 중요 속성들을 설명해 보겠다. 

이때 레이아웃 XML에 TextView를 사용하는 예를 보여 뷰의 중요 속성을 설명할 것이다.

 

① id 속성

이는 뷰의 식별자 속성이다. 필수 속성은 아니며 필요 시 추가할 수 있다.

화면에 뷰의 내용을 출력만 하는 목적이라면 id 속성을 생략해도 상관이 없다. 

하지만 id 속성이 없다면 레이아웃 XML에 등록하여 자동으로 생성된 뷰 객체룰 자바 코드에서 이용할 수 없다.

즉, 뷰 객체를 자바 코드에서 획득하여 속성 변경 등의 작업을 수행할 수 없다. 뷰 객체를 자바 코드로 직접 생성한게 아니여서 객체명을 알 수 없기 때문이다.

결국, 레이아웃 xml에 등록하여 자동으로 생성된 객체를 자바 코드에서 식별할 방법이 필요한데, 이때 이용하는 속성이 id다.

<TextView
    android:id="@+id/tv_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="hello"/>

위의 코드처럼 android:id="@+id/myText" 라고 설정하면 개발자가 임의이 이름으로 id 값을 하나 부여한 것이 된다. 이렇게 지정한 id 값은 해당 앱의 R.java 파일에 등록된다. id 값 자체가 리소스라고 할 순 없지만, 어쨌든 id 값도 R.java 파일에 등록된다. R.java 파일을 확인해보면 id변수(나의 경우 tv_text)가 하나 추가된 것을 확인할 수 있다.

 이처럼 레이아웃 XML에 명시한 id 값도 R.java에 등록되므로 id 값은 개발자가 임의의 이름으로 줄 수 있지만, 자바 명명규칙을 위배할 수는 없다. 이제 자바 코드에서 뷰 객체를 획득해 이용할 수 있다.

-> 그러려면 자바 코드에서 findViewById() 함수를 사용한다.

TextView textview = findViewById(R.id.tv_text);

정리 : 자바 코드에서 setContentView() 함수를 호출하면 레이아웃 XML 파일의 내용을 화면에 출력하고, XML에 정의한 객체가 자동으로 생성된다. 이렇게 생성된 객체는 R.java의 변수, 즉 XML에서 등록한 id 값을 매개변수로 하여 findViewById() 함수로 획득해서 사용할 수 있다.

 

② layout_width, layout_height 속성

이들의 속성값은 match_parent, fill_parent, wrap_content, 100px 등이 있다.

이때, match_parent와 fill_parent는 의미상 동일하다. 화면을 꽉 채우게 결정하라는 뜻이다.

wrap_content는 해당 뷰의 내용을 화면에 보이기 위한 적절한 크기를 계산해 결정하라는 의미이다.

100px처럼 수치로 뷰의 크기를 직접 결정할 수도 있다.

 

③ margin, padding 속성

margin은 뷰와 뷰 사이 간격을 지정하는 속성이며, padding은 뷰 내부에서 내용과 뷰의 테두리 간 간격을 지정하는 속성이다. 단일 방향의 간격만 조정하고 싶다면 다음과 같은 속성을 이용한다.

단일 margin 속성 : layout_marginLeft, layout_marginRight, layout_marginTop, layout_marginBottom

단일 padding 속성 : paddingLeft, paddingRight, paddingTop, paddingBottom

 

④ clickable 속성

클릭 이벤트가 발생하게 하는 속성.

 

⑤ visibility 속성

뷰를 화면에 출력할지 지정하는 속성. 기본값은 "true"이며, "invisible", "gone"으로 지정하면 화면에 안 보이게 할 수 있다. invisible은 화면에 보이지는 않지만 크기를 확보하며, gone으로 지정하면 크기를 확보하지 못한다.

자바코드에서는 setVisibility() 함수를 이용하여 뷰의 표시 상태를 조정한다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.