FrameLayout은 레이아웃 종류 중 가장 단순하다.
차일드를 배치하는 규칙이 따로 없고, 모든 차일드는 프레임의 좌측 상단에 나타난다.
차일드가 두개 이상일 경우에는 추가된 순서대로 겹쳐서 표시된다.
먼저 추가된 차일드가 아래쪽에 깔리고 나중에 추가된 차일드가 위로 올라오는 식이다.
프레임 속성에는 세가지가 있다.
foreground : 차일드의 위쪽에 살짝 얹히는 이미지를 지정한다.
foregroundGravity : 전경의 이미지를 배치할 방법을 지정한다.
measureAllChildren : 모든 자식의 크기를 다 측정할 것인지 아니면 보이거나 숨겨진 자식의 크기만 적용할 것인지 지정한다.
예제를 보겠다.
자식들의 개수는 제약이 없으므로 얼마든지 많은 뷰를 쓸 수 있다.
layout.xml
- <?xml version="1.0" encoding="utf-8"?>
- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- >
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:onClick="btnClick"
- android:text="Button" />
- <ImageView
- android:id="@+id/imageView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@android:drawable/btn_star_big_on" />
- </FrameLayout>
MainActivity.java
- package com.example.imgloadncrop;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.ImageView;
- public class MainActivity extends Activity
- {
- /** Called when the activity is first created. */
- ImageView img;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.layout);
- img = (ImageView) findViewById(R.id.imageView1);
- }
- // button 이벤트
- {
- else
- }
- }
간단하게 두개의 뷰를 포개 놓고, 버튼을 누르면 이미지가 사라졌다 없어졌다 하는 코드다.
'DEVELOPMENT > ANDROID' 카테고리의 다른 글
[android] TableLayout 기본 폼 (0) | 2014.03.18 |
---|---|
[android] 이벤트처리 - onTouchEvent (0) | 2014.03.12 |
[android] AbsoluteLayout (0) | 2014.03.12 |
[android] RelativeLayout (상대 레이아웃) (0) | 2014.03.12 |
[android] LinearLayout (0) | 2014.03.12 |