Skip to content

커피한잔의 여유와 코딩

코딩한줄에 12시간

  • About Me

날짜: 2015 10월 27

AppCompatActivity를 사용하는 화면에서 ActionBar에 로고(logo)를 보여주자.

Posted on 2015년 10월 27일2015년 12월 2일 by mcsong with Leave a comment

AppCompatActivity는 안드로이드 Support 라이브러리(v7)에서 제공하는 Activity 클래스의 구현체중(이전에 사용하던 ActionbarActivity는 deprecated)에 하나이다. 이 구현체는 안드로이드 롤리팝에서 지원하는 머티리얼 디자인(Material Design)을 하위버전에서 사용하기 위해서 사용한다.

롤리팝 이전 UI 테마인 홀로(Holo) 테마에서 로고를 ActionBar의 좌측에 보여주고 있다. 안드로이드가 롤리팝으로 업데이트 되면서, UI 테마도 머터리얼 디자인으로 개선됐다. 개선된 UI 테마는 폰/태플릿에서 화면을 더 효율적으로 사용할 수 있게 도와주는 위젯인 NavigationDrawer를 사용하는 것을 가이드하고 있고, 이 UI 역시 다른 위젯과 같이 햄버거(줄 3개) 아이콘을 사용하고 있다. 이 햄버거 아이콘이 이전 UI 테마에서 사용하는 로고의 자리에 위치하게 된다.

하위 버전에서 머터리얼 디자인을 사용하지만, NavigationDrawer를 사용하지 않는 앱들도 종종 있다. 이런 앱들은 ActionBar 좌측에 앱의 로고를 보여주게 된다.

1. 테마를 수정하지 않은 경우의 ActionBar

아래 ActionBar 화면은 앱 프로젝트를 만든 후에 실행한 화면이다. 테마와 스타일을 수정하지 않은 기본 테마를 사용했다.

actionbar_01

1.1 사용한 테마

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

2. 테마를 수정해서 ActionBar의 아이콘을 보여주는 화면

아래 ActionBar 화면은 위 프로젝트에 테마와 스타일을 약간 수정한 화면이다.

actionbar_02

2.1 사용한 테마

위와 같은 ActionBar를 보여주기 위해서는, 아래처럼 Widget.AppCompat.Light.ActionBar를 상속한 AppThemeActionBarLogo를 기본 테마인 AppTheme의 actionBarStyle로 지정해서 ActionBar에 로고를 사용할 수 있다.

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="actionBarStyle">@style/AppThemeActionBarLogo</item>
</style>

<style name="AppThemeActionBarLogo" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="background">@color/colorPrimaryDark</item>
    <item name="logo">@mipmap/ic_launcher</item>
    <item name="displayOptions">useLogo|showHome</item>
</style>
Posted in Android

카테고리

  • Android (101)
  • Apache Project (2)
  • Apache Project/Cassandra (14)
  • Apache Project/Ibatis/Mybatis (8)
  • Apache Project/Struts 2.x (3)
  • Apache Project/Tomcat (4)
  • Books (8)
  • Data (27)
  • Etc (16)
  • Java (97)
  • Lectures (18)
  • Mongodb (2)
  • My Project (10)
  • OOAD (19)
  • OS (32)
  • Playframework (1)
  • Tools (80)
  • Web (5)
  • 미분류 (1)

최근 글

  • 시스템 폰트 크기 변경시 UI 이슈 대응하기
  • 안드로이드 음성 검색에서 언어 선택하기
  • Waiting For Debugger 다이얼로그 이슈
  • 안드로이드 앱 테스트 서비스
  • 안드로이드 키오스크(Kiosk) 앱 개발 (3/3)

최근 댓글

  • mcsong (안드로이드 기기의 USB 메모리 마운트 위치)
  • 누노 (안드로이드 기기의 USB 메모리 마운트 위치)
  • mcsong (안드로이드 기기의 USB 메모리 마운트 위치)
  • 누노 (안드로이드 기기의 USB 메모리 마운트 위치)
  • mcsong (안드로이드 키오스크(Kiosk) 앱 개발 (2/3))

글 목록

태그

activity ADB Android Android AsyncTask android studio Ant apache cassandra apache ibatis AsyncTask ByteBuffer c# Cassandra CI cmd config Design Pattern Eclipse FIle http iBATIS java jdbc json Library linux logging object POSA posa 1 Reactor sjava-config sjava-logging SocketChannel String tomcat ubuntu UML UNIX windows XML 안드로이드 안드로이드 스튜디오 우분투 이클립스 자바
10월 2015
월 화 수 목 금 토 일
« 9월   11월 »
 1234
567891011
12131415161718
19202122232425
262728293031  
http://sjava.net/feed/
Designed by 2021 gbobbd