Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Android WebView 글꼴(폰트) 변경 방법 – 단계별 완벽 가이드

이 튜토리얼에서는 Android 앱에서 WebView에 사용자 지정 글꼴(Custom Font)을 적용하는 방법을 단계별로 알아봅니다. WebView는 기본적으로 웹 콘텐츠를 렌더링하므로, HTML과 CSS의 @font-face 규칙을 활용하면 손쉽게 원하는 폰트를 적용할 수 있습니다.

구현 원리

Android 프로젝트의 assets 폴더에 폰트 파일(.otf 또는 .ttf)과 HTML 파일을 함께 넣고, CSS에서 file:///android_asset/ 경로를 통해 폰트를 로드하는 것이 핵심입니다. 이렇게 하면 WebView가 렌더링하는 모든 텍스트에 커스텀 글꼴이 적용됩니다.

1단계: 새 프로젝트 생성

Android Studio를 열고 메뉴에서 File ⇒ New Project를 선택한 후, 새 프로젝트 생성에 필요한 모든 정보를 입력하여 프로젝트를 만듭니다. 언어는 Java 기준으로 진행합니다.

2단계: 레이아웃 XML 작성

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다. 화면 전체를 차지하는 WebView 하나를 배치하는 간단한 구조입니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/relativeLayout"
    android:padding="8dp"
    tools:context=".MainActivity">
    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</RelativeLayout>

3단계: assets 폴더 및 HTML 파일 생성

프로젝트의 app 폴더를 우클릭하여 New >> Folder >> Assets Folder를 선택해 assets 폴더를 생성합니다. 그다음 assets 폴더 안에 새 파일(webView1.html)을 만들고 아래 코드를 입력합니다.

여기서 주목할 부분은 CSS의 @font-face 선언입니다. file:///android_asset/Font.otf 경로로 폰트 파일을 불러온 뒤, body 요소에 해당 폰트 패밀리를 지정했습니다.

<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>WebView9</title>
<meta forua="true" http-equiv="Cache-Control" content="max-age=0"/>
<style type="text/css">
    @font-face {
        font-family: 'Font';
        src:url("file:///android_asset/Font.otf")
    }
    body {
        font-family: 'Font', serif;
        font-size: medium;
        text-align: justify;
        color:#ffffff
    }
</style>
</head>
<body style="background-color:#212121">
This file was loaded from android assets folder using webView.</body>
</html>

팁: 적용하고 싶은 폰트 파일(.otf)을 미리 다운로드하여 반드시 assets 폴더 안에 Font.otf라는 이름으로 함께 넣어야 합니다. 파일 이름이 다르면 CSS의 src 경로도 일치하도록 수정하세요.

4단계: MainActivity.java 코드 작성

src/MainActivity.java 파일에 아래 코드를 추가합니다. WebView를 찾아 assets 폴더의 HTML 파일을 로드하는 것이 전부입니다.

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
    WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = findViewById(R.id.webView);
        webView.loadUrl("file:///android_asset/webView1.html");
    }
}

5단계: AndroidManifest.xml 설정

androidManifest.xml 파일에 아래 코드를 추가합니다. MainActivity가 런처(Launcher) 액티비티로 등록되어 있는지 확인하세요.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 Android 기기를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run(실행) 아이콘을 클릭하세요. 옵션 목록에서 자신의 모바일 기기를 선택하면, 기기 화면에 아래와 같이 커스텀 글꼴이 적용된 WebView가 표시됩니다.

Android WebView 글꼴(폰트) 변경 방법 – 단계별 완벽 가이드

마무리 정리

정리하면, Android WebView의 글꼴을 변경하는 핵심 과정은 다음 세 가지입니다.

  • 폰트 파일 준비: .otf 또는 .ttf 폰트 파일을 assets 폴더에 추가
  • CSS @font-face 선언: file:///android_asset/ 경로로 폰트를 등록하고 body에 적용
  • HTML 로드: WebView에서 loadUrl()로 해당 HTML 파일 호출

이 방식을 응용하면 여러 개의 폰트를 동시에 등록하거나, 특정 요소마다 다른 글꼴을 적용하는 것도 가능합니다. 웹 콘텐츠 스타일링의 유연성을 그대로 살릴 수 있다는 점이 WebView의 큰 장점입니다.