프로그래밍/안드로이드

안드로이드 - 타이틀 바 조작하기 (풀스크린 만들기)

가카리 2015. 8. 30. 17:08
반응형

Window 클래스는 윈도우를 표현하며 액티비티의 모양과 동작에 대한 여러가지 옵션을 제공한다.

 

윈도우 객체는 getWindow 메소드를 호출하여 언제든지 얻을 수 있으며 이 객체를 통해 여러가지 조작을 한다.

 

boolean Window.requestFeature(int featureId)

boolean Activity.requestWindowFeature(int featureId)

 

위의 메소드를 활용해서 윈도우의 확장 기능을 활성화 할 수 있다.

 

확장기능 플래그는 다음과 같다.

 

기능

설명

DEFAULT_FEATURES

기본 기능

FEATURE_CONTEXT_MENU

컨텍스트 메뉴를 쓸 수 있다. 디폴트로 이 기능이 선택되어있음

FEATURE_CUSTOM_TITLE

커스텀 타이틀 바를 사용한다.

FEATUE_PROGRESS

타이틀 바에 막대 모양 프로그래스를 표시한다.

FEATURE_INDETERMINATE_PROGRESS

타이틀 바에 원형의 프로그래스를 표시한다.

FEATURE_LEFT_ICON

아이콘을 왼쪽에 놓는다.

FEATURE_RIGHT_ICON

아이콘을 오른쪽에 놓는다.

FEATURE_NO_TITLE

타이틀 바를 가지지 않는다.

FEATURE_OPTIONS_PANEL

옵션 패널을 가진다.

 

 

다음은 타이틀바를 없애는 예제입니다.

NoTitle.java

 

package com.example.ch18_notitle;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.Window;

 

public class NoTitle extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

      

        Window win = getWindow();

        win.requestFeature(Window.FEATURE_NO_TITLE);

        

        // 두줄을 아래와 같이 한줄로 해도된다.

        //requestWindowFeature(Window.FEATURE_NO_TITLE);

 

        setContentView(R.layout.activity_no_title);

    }

 

 

}

 

실행 화면

 

 

이번에는 상태바까지 없애보자.

 

상태바까지 없애기 위해서는 다음 메소드를 사용해서 플래그를 조작한다.

 

    void addFlags(int flags)

    void clearFlags(int flags)

 

플래그

설명

FLAG_FULLSCREEN

장식을 모두 제거하고 전체 화면을 쓴다.

FLAG_BLUR_BEHIND

뒤쪽의 화면을 흐릿하게 표시한다.

FLAG_DIM_BEHIND

뒤쪽의 화면을 흐리게 표시한다.

FLAG_KEEP_SCREEN_ON

윈도우가 보이는 동안은 화면을 끄지 않는다.

FLAG_NOT_FOCUSABLE

키 입력 포커스를 받지 않는다.

FLAG_NOT_TOUCHABLE

터치 입력을 받지 않는다.

FLAG_SHOW_WALLPAPER

바탕의 배경 화면을 보인다.

FLAG_SHOW_WHEN_LOCKED

화면이 잠긴 상태에서도 보이도록 한다.

 

다음은 화면의 상태바까지 없앤 풀스크린을 만드는 예제이다.

 

FullScreen.java

 

package com.example.ch18_fullscreen;

 

import android.app.Activity;

import android.os.Bundle;

import android.view.Window;

import android.view.WindowManager;

 

public class FullScreen extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

      

        Window win = getWindow();

        win.requestFeature(Window.FEATURE_NO_TITLE);

        win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        

        setContentView(R.layout.activity_full_screen);

    

    }

 

      

 

    

}

 

 

실행 화면

다음과 같이 상태바도 없어진 것을 볼 수 있다.

 

 

반응형