윈도우는 빈 채로 생성되며 빈 윈도우 안에 레이아웃을 채워 넣어 UI를 구성하는데 이때는 다음 메소드를 호출 한다.
void setContentView(int layoutResID)
void setContentView(View view, [ViewGroup.LayoutParams params])
void addContentView(View view, ViewGroup.LayoutParams params)
다음 예제는 2개의 xml파일을 겹쳐서 보여주는 예제이다.
overlay1.xml
<LinearLayout 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:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="바닥 레이아웃" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="바닥의 버튼"
/>
</LinearLayout>
overlay2.xml
<LinearLayout 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:gravity="center"
android:background="#40ffff00"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="이것은 위쪽의 레이아웃 입니다."/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="위쪽 버튼"/>
</LinearLayout>
Overlay.java
package com.example.overlay;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Window;
import android.widget.LinearLayout;
public class Overlay extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Window win = getWindow();
win.setContentView(R.layout.overlay1);
//전개자로 xml파일을 가져옴
LayoutInflater inflater = (LayoutInflater)getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
LinearLayout linear = (LinearLayout)inflater.inflate(R.layout.overlay2, null);
//파라미터를 세팅해줌
LinearLayout.LayoutParams paramlinear = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT
);
//윈도우에 추가시킴
win.addContentView(linear, paramlinear);
}
}
실행화면
아래쪽 레이아웃은 위쪽 레이아웃 때문에 색상이 약간 변한다. 하지만 두 버튼은 독립적으로 동작해서 클릭 리스너를 추가 시킬 수 있다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - 한 화면에 여러 개의 프래그먼트 만들기 (0) | 2015.09.08 |
---|---|
안드로이드 - 프래그먼트 사용 간단 예제 (0) | 2015.09.08 |
안드로이드 - 외부 메모리에 앱 설치하기 (0) | 2015.09.08 |
안드로이드 - 윈도우 관리자 활용하기 (0) | 2015.09.05 |
안드로이드 - 타이틀 바 조작하기 (풀스크린 만들기) (0) | 2015.08.30 |
안드로이드 - Application 객체를 이용한 전역 변수 만들기 (0) | 2015.08.26 |
안드로이드 - 목록을 팝업으로 보여주는 ListPopupWindow (0) | 2015.08.23 |
안드로이드 - CalendarView로 쉽게 달력을 만들자 (11) | 2015.08.23 |