2011. 6. 4. 17:22

안드로이드 레이아웃 중 Relative Layout


Relative Layout은 안드로이드 프로그래밍에서 가장 많이 쓰이는 레이아웃입니다.

에뮬레이터에서 보이는 화면에 대한 XML 구성 코드는 이렇고,

  1: <?xml version="1.0" encoding="utf-8"?>
  2: <RelativeLayout
  3:  xmlns:android="http://schemas.android.com/apk/res/android"
  4:  android:layout_width="match_parent"
  5:  android:layout_height="match_parent"
  6: >
  7:  <ImageButton
  8:   android:id="@+id/imageButton1"
  9:   android:layout_height="wrap_content"
 10:   android:layout_width="wrap_content"
 11:   android:layout_alignParentLeft="true"
 12:   android:src="@drawable/sandara"
 13:  ></ImageButton>
 14:  <EditText
 15:   android:text="2NE1 산다라박의 KISS"
 16:   android:layout_width="fill_parent"
 17:   android:id="@+id/editText1"
 18:   android:layout_below="@+id/imageButton1"
 19:   android:layout_height="wrap_content"
 20:   android:background="@android:drawable/editbox_background"
 21:  ></EditText>
 22:  <Button
 23:   android:layout_width="wrap_content"
 24:   android:layout_below="@+id/editText1"
 25:   android:id="@+id/button1"
 26:   android:layout_height="wrap_content"
 27:   android:text="취소"
 28:   android:layout_alignParentRight="true"
 29:  ></Button>
 30:  <Button
 31:   android:layout_width="wrap_content"
 32:   android:id="@+id/button2"
 33:   android:layout_height="wrap_content"
 34:   android:layout_toLeftOf="@+id/button1"
 35:   android:text="확인"
 36:   android:layout_alignTop="@+id/button1"
 37:   android:layout_alignBottom="@+id/button1"   
 38:  ></Button>
 39:  <TextView
 40:   android:layout_toRightOf="@+id/imageButton1"
 41:   android:layout_height="wrap_content"
 42:   android:id="@+id/textView1"
 43:   android:textSize="12pt"
 44:   android:text="산다라박 "
 45:   android:textStyle="bold"
 46:   android:layout_width="wrap_content"
 47:  ></TextView>
 48: </RelativeLayout>

이벤트 처리를 하기 위해 확인 버튼을 누르면 산다라박 문자열이 KISS로 변하는 코드 한 번 보자면,

  1: package kr.test;
  2: 
  3: import android.app.Activity;
  4: import android.os.Bundle;
  5: import android.view.View;
  6: import android.widget.Button;
  7: import android.widget.TextView;
  8: 
  9: public class LinearLayout extends Activity {
 10:  private TextView textview ;
 11:  private Button btnOK ;
 12:  private Button btnCancel ;
 13:  
 14:     /-* Called when the activity is first created. *-
 15:     @Override
 16:     public void onCreate(Bundle savedInstanceState) {
 17:         super.onCreate(savedInstanceState);
 18:         setContentView(R.layout.relativelayout2);
 19:         
 20:         textview = (TextView)this.findViewById(R.id.textView1) ;
 21:         btnOK = (Button)this.findViewById(R.id.button2) ;
 22:         btnCancel = (Button)this.findViewById(R.id.button1) ;
 23:         
 24:         btnOK.setOnClickListener(new View.OnClickListener() {
 25:    
 26:    public void onClick(View v) {
 27:     // TODO Auto-generated method stub
 28:     textview.setText("KISS") ;
 29:    }
 30:   }) ;
 31:         
 32:         btnCancel.setOnClickListener(new View.OnClickListener() {
 33:    
 34:    public void onClick(View v) {
 35:     // TODO Auto-generated method stub
 36:     textview.setText("산다라박") ;
 37:    }
 38:   }) ;
 39:  }
 40: }

확인 버튼과 취소 버튼을 누르면 산다라박과 KISS가 토글됩니다.