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

Cách thay đổi font family (kiểu chữ) của TextView trong Android

Giới thiệu

Bài viết này minh họa cách thay đổi kiểu chữ (font family) cho TextView trong Android sử dụng thuộc tính android:fontFamily trong XML. Android hỗ trợ sẵn nhiều font hệ thống như sans-serif, serif, monospace và các biến thể (bold, italic, condensed...).

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

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

Mở Android Studio, chọn File → New Project và tạo dự án.

Bước 2: Thiết kế giao diệ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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Hello World!"
        android:fontFamily="cursive"
        android:textSize="48sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView1"
        android:layout_centerInParent="true"
        android:layout_marginBottom="10dp"
        android:text="Hello World"
        android:fontFamily="sans-serif-black"
        android:textSize="48sp" />

</RelativeLayout>

Bước 3: Code logic (src/MainActivity.java)

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: Cấu hình AndroidManifest.xml

<?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>

Chạy ứng dụng

Kết nối thiết bị, nhấn Run. TextView đầu tiên hiển thị font chữ viết tay (cursive), TextView thứ hai hiển thị font sans-serif đậm (black weight).

Các font family hệ thống phổ biến

Font FamilyMô tả
sans-serifFont không chân mặc định (Roboto)
sans-serif-lightRoboto Light
sans-serif-mediumRoboto Medium
sans-serif-blackRoboto Black (đậm nhất)
sans-serif-condensedRoboto Condensed (nén ngang)
serifFont có chân (Noto Serif)
monospaceFont cố định chiều rộng (Droid Sans Mono)
cursiveFont viết tay

Sử dụng font tùy chỉnh (Custom Font)

Để dùng font .ttf/.otf riêng: đặt file vào res/font/ (API 26+) hoặc thư mục assets/fonts/ (cũ), sau đó gán qua code:

Typeface typeface = ResourcesCompat.getFont(this, R.font.ten_font);
textView.setTypeface(typeface);