[안드로이드] 안드로이드스튜디오(Android Studio) 액티비티(Activity)에서 액션바(타이틀바)(ActionBar, TitleBar) 제거하기 액션바 모양변경하기, 안드로이드 예제, 안드로이드 강좌
참고 : 이미지서명은 제 와이프 블로그 이미지서명입니다.
안녕하세요 안드로이드 만년 초보 정보처리마법사입니다.
이번 포스팅의 주제는 액티비티(Activity)에서 액션바(타이틀바) 제거하기 입니다.
액션바를 제거하는 방법에는 세 가지가 있습니다.
일단 default로 그냥 앱을 실행하면 위 이미지와 같이
hello world라는 문구와 함께 상태바와 액션바가 보입니다.
액션바를 제거하는 첫 번째 방법은 Activity 내의 자바 코드에서 setTheme()메소드로 화면 스타일을 지정하는 방법입니다. 프로젝트를 실행할때 기본적으로 MainActivity가 AppCompatActivity를 상속받은 상태였는데
여러가지 귀찮게 잔에러가 많이 떠서 전 그냥 Activity를 상속받은 상태로 진행하였습니다.
AppCompatActivity와 Activity의 차이점은 AppCompatActivitiy는 안드로이드 API Level 3.0미만의 단말기에서 동작할 수 없는 메소드들을 지원하기 위해서 사용하는 안드로이드 하위버전을 지원하기 위한 액티비티입니다.
맨 아랫줄을 보시면 setTheme메소드를 사용하여
android.R.style.Theme_DeviceDefault_NoActionBar_Fullscreen 속성을 사용하였습니다.
저 상태로 실행을 하면 위 이미지와 같은 모습이 됩니다.
그리고 액션바를 제거하는 두번째 방법은 AndroidManifest.xml의 <activity> 내의 android:theme 속성을 추가하는 방법입니다. AndroidManifest.xml 파일을 열어서 <activity>안쪽 android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen" 속성을 추가해줍니다.
실행을 해보면 이런모습이 되는데 그 이유는
어플리케이션 테마를 @style/AppTheme 로 지정해놓았기 때문입니다.
styles.xml 파일을 열어보면 <resources> 안에 AppTheme로 Theme.AppCompat.Light.DarkActionBar가 지정돼있는것을 볼 수 있습니다.
그리고 마지막 세 번째 방법은 Activity내의 자바 코드에서 setFlags() 메소드로 화면 모양을 직접 설정하는 방법입니다. 이방법은 onCreate() 메소드에서 윈도우의 모양을 직접 설정하는 것입니다.
일단 아까 사용했던 setTheme메소드 부분을 주석처리 하였습니다. 그리고 onCreate()메소드 아래에 세 줄을 저런식으로 추가하였습니다.
실행화면 입니다.
화면의 모양이 조금씩 다른데 그건 직접 자기 기호에 맞게 조절하면 되겠습니다.
참고
requestWindowFeature() 메소드에 다음과 같은 상수를 지정해서
액션바의 모양을 다양하게 변경할 수 있습니다.
android.view.Window에 정의되어 있는 상수
FEATURE_ACTION_BAR - 액션바를 사용(기본 값)
FEATURE_ACTION_BAR_OVERLAY - 액션바와 액티비티의 내용을 중첩
FEATURE_CONTEXT_MENU - 컨텍스트 메뉴
FEATURE_CUSTOM_TITLE - 커스텀 타이틀바 사용
FEATURE_INDETERMINATE_PROGRESS -액션바에 원형 프로그래스바 표시
FEATURE_LEFT_ICON -액션바 왼쪽에 아이콘 표시
FEATURE_NO_TITLE - 액션바(타이틀바) 생략
FEATURE_OPTIONS_PANEL -옵션 패널 표시
FEATURE_PROGRESS -액션바에 막대 프로그래스바 표시
FEATURE_RIGHT_ICON -액션바 오른쪽에 아이콘 표시
이상으로 포스팅을 마칩니다. 감사합니다.
참고서적 : 200개의 단계별 예제로 배우는 안드로이드 4.0 [제이펍]
Fin.
잘 못 된 정보가 있으면 말씀해주세요~
공감버튼 클릭은 작성자에게 큰 힘이 됩니다. 행복한 하루 되세요.