Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách đặt font chữ mặc định cho toàn bộ ứng dụng Android?

Giới thiệu

Hướng dẫn thiết lập font chữ mặc định cho toàn bộ ứng dụng Android thông qua theme/style, không cần set font cho từng View riêng lẻ.

Các bước thực hiện

Bước 1: Tạo dự án mới

Khởi tạo project Android Studio cơ bản.

Bước 2: Giao diện đơn giản (res/layout/activity_main.xml)

<?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:layout_margin="16dp"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/lorem"
        android:textSize="18sp" />
</RelativeLayout>

Bước 3: MainActivity cơ bản (src/MainActivity.java)

package app.tutorialspoint.com.sample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

Bước 4: Định nghĩa font trong theme (res/values/styles.xml)

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

    <style name="AppTheme" parent="AppBaseTheme">
        <!-- Áp dụng font cho TextView và Button toàn app -->
        <item name="android:textViewStyle">@style/RobotoTextViewStyle</item>
        <item name="android:buttonStyle">@style/RobotoButtonStyle</item>
    </style>

    <style name="RobotoTextViewStyle" parent="android:Widget.TextView">
        <item name="android:fontFamily">sans-serif-light</item>
    </style>

    <style name="RobotoButtonStyle" parent="android:Widget.Holo.Button">
        <item name="android:fontFamily">sans-serif-light</item>
    </style>
</resources>

Bước 5: Áp dụng theme trong AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.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>

Chạy ứng dụng

Kết nối thiết bị, nhấn Run. Toàn bộ TextView và Button sẽ sử dụng font sans-serif-light tự động.

Cách đặt font chữ mặc định cho toàn bộ ứng dụng Android?

Mở rộng

Để dùng font tùy chỉnh (.ttf/.otf), đặt file vào res/font/ và tham chiếu @font/ten_font thay vì sans-serif-light. Từ API 26+, Android hỗ trợ Font Resources tự nhiên.