자바 안드로이드 앱개발 강좌, 앱바 사용하기

1. 앱바(AppBar)란?

앱바는 안드로이드 앱에서 기본적인 사용자 인터페이스를 구성하는 중요한 요소입니다. 앱바는 일반적으로 화면 상단에 위치하여 현재 화면의 제목을 표시하고, 사용자에게 앱의 주요 기능에 접근할 수 있는 도구를 제공합니다.
안드로이드의 앱바는 Toolbar 클래스를 통해 구현됩니다. 앱바는 다양한 버튼과 로고, 메뉴 아이콘 등을 포함할 수 있어 사용자 경험을 향상시키는 데 중요한 역할을 합니다.

2. 앱바의 기본 구성 요소

앱바는 여러 구성 요소로 이루어져 있습니다:

  • 타이틀 (Title): 현재 화면의 제목을 표시합니다.
  • 내비게이션 아이콘 (Navigation Icon): 사용자가 이전 화면으로 돌아갈 수 있도록 도와주는 아이콘입니다.
  • 메뉴 아이템 (Menu Items): 추가적인 기능을 제공하는 아이콘들입니다.
  • 액션 버튼 (Action Buttons): 사용자가 자주 사용하는 기능을 제공하는 버튼입니다.

3. 앱바 구현하기

이번 섹션에서는 실제로 앱바를 구현하는 방법에 대해 설명합니다. 먼저 안드로이드 스튜디오에서 새 프로젝트를 생성하고, 앱바를 위한 기본적인 레이아웃을 설정합니다.

3.1 새 안드로이드 프로젝트 생성

1. 안드로이드 스튜디오를 열고 “New Project”를 선택합니다.
2. “Empty Activity”를 선택하고 프로젝트명을 입력합니다.
3. 언어는 Java를 선택한 후 “Finish”를 클릭합니다.

3.2 build.gradle 파일 수정

앱바를 사용하기 위해 `build.gradle` 파일에 `Toolbar`를 추가할 필요가 없습니다. AndroidX 라이브러리가 기본적으로 포함되어 있으니, 필요한 SDK 버전만 확인합니다.

3.3 activity_main.xml 수정

다음으로 `activity_main.xml` 파일에서 앱바를 추가합니다. 아래의 코드를 참조하세요:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello, World!"
        android:layout_below="@id/toolbar"
        android:layout_centerInParent="true" />

</RelativeLayout>

3.4 MainActivity.java 코드 작성

다음으로, MainActivity.java 파일에 앱바와 관련된 코드를 추가합니다. 아래의 예제를 참고하세요:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import androidx.appcompat.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 툴바 설정
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("앱바 예제");
    }
}

4. 메뉴 아이템 추가하기

다음 단계로 앱바에 메뉴 아이템을 추가해보겠습니다. 먼저, 메뉴 리소스 파일을 생성합니다.

4.1 메뉴 리소스 파일 생성

1. res/menu 폴더를 우클릭하고 “New” > “Menu Resource File”을 선택합니다.
2. 파일 이름을 `menu_main.xml`으로 지정한 후 “OK”를 클릭합니다.

4.2 menu_main.xml 파일 수정

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/action_settings"
        android:title="설정"
        android:orderInCategory="100"
        android:showAsAction="never" />

</menu>

4.3 MainActivity.java에 메뉴 추가하기

`onCreateOptionsMenu` 메서드를 오버라이드하여 방금 생성한 메뉴를 앱바에 추가합니다.

import android.view.Menu;
import android.view.MenuItem;

// MainActivity.java에 추가
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.action_settings) {
        // 설정 아이템 클릭 시 동작
        return true;
    }

    return super.onOptionsItemSelected(item);
}

5. 앱바에 아이콘 추가하기

다음으로, 앱바에 아이콘을 추가하여 사용자가 더 많은 기능을 사용할 수 있도록 합니다. 이 섹션에서는 아이콘을 추가하고 설정하는 방법을 설명합니다.

5.1 drawable 폴더에 아이콘 추가

아이콘 이미지를 res/drawable 폴더에 추가합니다.
예를 들어, `ic_settings.xml`이라는 파일을 만들고 아래와 같이 설정합니다:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path
        android:fillColor="#FF000000"
        android:pathData="M12,16.5c-1.33,0 -2.48,0.51 -3.41,1.41l-1.59,-1.59c-2.5,2.5 -2.5,6.57 0,9.08s6.57,2.5 9.08,0s2.5,-6.57 0,-9.08l-1.59,1.59C14.48,17.01,13.33,16.5,12,16.5z M12,8.5c1.33,0 2.48,-0.51 3.41,-1.41l1.59,1.59c2.5,-2.5 2.5,-6.57 0,-9.08s-6.57,-2.5 -9.08,0 -2.5,6.57 0,9.08l1.59,-1.59C9.52,8.99,10.67,8.5,12,8.5z"/>
</vector>

5.2 메뉴 아이템에 아이콘 추가

<item
    android:id="@+id/action_settings"
    android:title="설정"
    android:icon="@drawable/ic_settings"
    android:orderInCategory="100"
    android:showAsAction="ifRoom" />

6. 앱바의 디자인 및 커스터마이징

앱바는 기본적으로 디자인을 제공하지만, 필요에 따라 이를 커스터마이징할 수 있습니다.
다음 섹션에서는 앱바의 스타일을 수정하는 방법과 추가적인 커스터마이징 옵션을 설명합니다.

6.1 styles.xml에서 앱바 스타일 수정

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">#3F51B5</item>
    <item name="colorPrimaryDark">#303F9F</item>
    <item name="colorAccent">#FF4081</item>
    </style>

6.2 색상 변경하기

색상과 스타일을 변경하려면 res/values/colors.xml에서 색상을 정의하고,
styles.xml에서 이를 사용합니다. 각 색상의 코드를 적절히 수정하여 바꿀 수 있습니다.

7. 결론

이번 강좌를 통해 자바를 활용한 안드로이드 앱개발에서 앱바의 역할과 구현 방법에 대해 배웠습니다.
앱바는 앱의 필수적인 구성 요소로, 사용자에게 직관적인 인터페이스를 제공하여 더욱 개선된 사용자 경험을 제공합니다.
다양한 방향에서 앱바를 커스터마이징함으로써 앱의 전반적인 스타일과 기능성을 높일 수 있습니다.
이제 여러분은 앱바를 자신의 앱에 통합하여 다양한 기능을 제공할 수 있는 능력을 가졌습니다.
계속해서 연습하고 다양한 기능을 추가하여 더욱 발전된 앱을 만들어보세요!