상세 컨텐츠

본문 제목

[Android]자바 프로그램으로 화면 구성

Android 개발

by mobile 2013. 2. 26. 23:32

본문

반응형

<RelativeLayout 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" 

    android:background="@drawable/blue"

    android:padding="10dip">


대응하는 자바 프로그램

rl = new RelativeLayout(this);

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(

ViewGroup.LayoutParams.MATCH_PARENT,

ViewGroup.LayoutParams.WRAP_CONTENT);

rl.setLayoutParams(params);

rl.setBackgroundResource(R.drawable.blue);

rl.setPadding(10, 10, 10, 10);

먼저 RelativeLayout 클래스의 생성자를 사용하여 RelativeLayout 인스턴스를 만든다. 그리고 별도의 RelativeLayout.LayoutParams 내부 클래스의 생성자를 이용하여 레이아웃의 틀을 만든다.


RelativeLayout.LayoutParams(int w, int h) 생성자는 다음과 같이 뷰(또는 뷰그룹)의 너비와 높이를 정한다.

- w : android:layout_width 속성에 대응되는 뷰의 너비(width)

- h : android:layout_height 속성에 대응되는 뷰의 높이(height)


View.setLayoutParams(VeiwGroup.LayoutParams params) 메서드를 사용하여 상대레이아웃 객체의 틀을 설정한다. 최상위 뷰그룹은 setLayoutParams() 메서드를 사용하여 레이아웃의 틀을 만들고 하위 뷰들은 ViewGroup.addView(View child, ViewGroup.LayoutParams params) 메서드를 사용하여 레이아웃 속에 뷰의 뷰의 틍을 넣어 만들게 된다. addView() 메서드를 사용하여 추가되는 하위 뷰들은 결과적으로 상위 레이아웃의 계층구조의 영향을 받게 된다.


View.setBackgroundResource(int resid) 메서드는 리소스를 사용하여 뷰그룹이나 뷰의 배경을 설정한다. 패딩은 View.setPadding(int left, int top, int right, int bottom) 메서드를 사용하여 왼쪽부터 위쪽으로 시계방향으로 설정한다. 그리고 설정된 패딩값은 getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom() 메서드를 사용하여 읽을 수 있다.


<TextView

        android:id="@+id/label"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content" 

        android:text="@string/layout_instructions" />


대응하는 자바 프로그램

label = new TextView(this);

label.setText(R.string.layout_instructions);

label.setId(ID_LABEL);


RelativeLayout.LayoutParams lpl = new RelativeLayout.LayoutParams(

ViewGroup.LayoutParams.MATCH_PARENT,

ViewGroup.LayoutParams.WRAP_CONTENT);

lpl.addRule(RelativeLayout.ALIGN_PARENT_TOP);

rl.addView(label, lpl);


TextView 객체는 TextView() 생성자를 사용하여 생성한다. 텍스트뷰의 아이디는 setId() 메서드를 사용하여 설정하는 데 사용하는 매개변수는 개발자가 int 타입으로 만들어 제공해야 한다. 그리고 출력하는 화면 문자는 setText() 메서드를 사용한다.


TextView 객체를 RelativeLayout.LayoutParams 클래스가 제공하는 생성자를 사용하여 상대레이아웃내 넣어야 한다.


RelativeLayout.LayoutParams.addRule(int verb, int anchor) 메서드는 상대레이아웃에서 매개변수 anchor가 지정한 뷰를 기준으로 자신의 상대적인 위치를 정한다. 

반응형

관련글 더보기

댓글 영역