1. FrameLayout(프레임 레이아웃)은 가장 단순한 레이아웃이다. 내부 View객체들을 항상 왼쪽 상단에 쌓아둔다. 즉 가장 마지막에 추가된 객체가 화면에 보이게 될 것이다. 각 객체들에 대한 Visibility속성을 가지고 화면에 표시할지 안할지를 정의할 수 있다. 이를 이용해 프레임레이아웃에 있는 객체를 클릭하면 사라지게 한다든지 하는 이벤트를 사용 할 수 있다. 이런 이벤트를 사용할 때 보통 기본적인 레이아웃들을 만들어 놓고 이를 프레임 레이아웃에 넣어서 이벤트에 사용한다.
     
  2. FrameLayout의 경우 간단히 다음 예제를 하나 보면 이해가 될 것이다. ImageView와 Button객체를 가지고있는 FrameLayout을 실행하여 버튼이벤트에 ImageVIew의 Visibility를 VISIBLE 과 INVISABLE 설정하여 화면에 보이게/ 안보이게 하는 예제이다.

     먼저 layout의 xml코드이다.
    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">
    <Button
                 android:id="@+id/btn"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="Push Button"/>
    <ImageView
                 android:id="@+id/img"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:src="@drawable/icon" />
    </FrameLayout>
    다음은 java 코드이다.
    package com.example.FrameLayoutTest;
    
    import android.app.*;
    import android.os.*;
    import android.view.*;
    import android.widget.*;
    
    public class FrameLayoutTest extends Activity  {
            public void onCreate(Bundle savedInstanceState)  {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.main);
    
                    Button btn =  (Button)findViewById(R.id.btn);
                    btn.setOnClickListener(new Button.OnClickListener()  {
                            public void onClick(View v)  {
                                    ImageView img=(ImageView)findViewById(R.id.img);
                                    if(img.getVisibility() == View.VISIBLE)  {
                                            img.setVisibility(View.INVISIBLE);
                                    } else  {
                                            img.setVisibility(View.VISIBLE);
                                    }
                            }
                    });
            }
    }
    실행결과
     

     버튼클릭->  

    이런 방식으로 레이아웃 여러개를 표시할 수 있는 MultiPage 구성이 가능해 진다.

    ↗당연하지만 중요한 것 하나는 다른 레이아웃 또는 다른 xml에서 정의하는 객체라도 id값은 중복 되면 안된다는 것이다. 모든 ID값은 R.java에서 관리 하기 때문에 인식하지 못해서 에러가 나게된다.

'Programming > ANDROID' 카테고리의 다른 글

ViewGroup - RelativeLayout  (2) 2011.03.29
ViewGroup - TableLayout  (1) 2011.03.29
ViewGroup - LinearLayout  (2) 2011.03.28
뷰 그룹(View Group) - Layout  (1) 2011.03.28
안드로이드 한글 키보드 설정  (4) 2011.03.27

+ Recent posts