Dodawanie czcionki jako zasobu XML

Wypróbuj Compose
Jetpack Compose to zalecany zestaw narzędzi do tworzenia interfejsu na Androidzie. Dowiedz się, jak używać tekstu w Compose.

Android 8.0 (interfejs API na poziomie 26) wprowadza czcionki w XML, czyli funkcję, która umożliwia używanie czcionek jako zasobów. Aby dołączyć czcionki jako zasoby, możesz dodać plik font w folderze res/font/ Te czcionki są kompilowane w pliku R i są automatycznie dostępne w Android Studio. Dostęp do zasobów czcionek możesz uzyskać za pomocą typu zasobu font. Aby na przykład uzyskać dostęp do zasobu czcionki, użyj @font/myfont lub R.font.myfont.

Aby używać funkcji czcionek w XML na urządzeniach z Androidem 4.1 (poziom interfejsu API 16) lub nowszym, użyj Biblioteki pomocy 26.0. Więcej informacji o korzystaniu z Biblioteki pomocy znajdziesz w sekcji Korzystanie z Biblioteki pomocy.

Aby dodać czcionki jako zasoby, wykonaj te czynności w Android Studio:

  1. Kliknij prawym przyciskiem myszy folder res i wybierz New > Android resource directory (Nowy > Katalog zasobów Androida). Pojawi się okno New Resource Directory (Nowy katalog zasobów).
  2. Na liście Resource type (Typ zasobu) wybierz font (czcionka), a potem kliknij OK.

    Uwaga: nazwa katalogu zasobów musi brzmieć font.

    Dodawanie katalogu zasobów czcionek

    Rysunek 1. Dodawanie katalogu zasobów czcionek.

  3. Dodaj pliki czcionek w folderze font.

    Poniższa struktura folderów generuje R.font.dancing_script, R.font.lobster i R.font.typo_graphica.

    Dodawanie plików czcionek do katalogu zasobów

    Rysunek 2. Dodawanie plików czcionek w katalogu res/font.

  4. Kliknij dwukrotnie plik czcionki, aby wyświetlić podgląd czcionek w edytorze. Wyświetlanie podglądu pliku czcionki

    Rysunek 3. Wyświetlanie podglądu pliku czcionki.

Tworzenie rodziny czcionek

Rodzina czcionek to zestaw plików czcionek wraz ze szczegółami dotyczącymi stylu i grubości. W Androidzie możesz utworzyć nową rodzinę czcionek jako zasób XML i uzyskać do niej dostęp jako do pojedynczej jednostki, zamiast odwoływać się do każdego stylu i grubości jako do osobnych zasobów. Dzięki temu system może wybrać odpowiednią czcionkę na podstawie używanego stylu tekstu.

Aby utworzyć rodzinę czcionek, wykonaj te czynności w Android Studio:

  1. Kliknij prawym przyciskiem myszy folder font i wybierz New > Font resource file (Nowy > Plik zasobu czcionki). Pojawi się okno New Resource File (Nowy plik zasobu) .
  2. Wpisz nazwę pliku i kliknij OK. Nowy plik XML zasobu czcionki otworzy się w edytorze.
  3. Każdy plik czcionki, styl i atrybut grubości umieść w elemencie <font>. Poniższy kod XML pokazuje, jak dodać atrybuty związane z czcionką w pliku XML zasobu czcionki:
    <?xml version="1.0" encoding="utf-8"?>
    <font-family xmlns:android="http://schemas.android.com/apk/res/android">
        <font
            android:fontStyle="normal"
            android:fontWeight="400"
            android:font="@font/lobster_regular" />
        <font
            android:fontStyle="italic"
            android:fontWeight="400"
            android:font="@font/lobster_italic" />
    </font-family>

Używanie czcionek w układach XML

Używaj czcionek, pojedynczego pliku czcionki lub czcionki z rodziny czcionek, w TextView obiektach lub w stylach za pomocą fontFamily atrybutu.

Uwaga: gdy używasz rodziny czcionek, element TextView przełącza się w razie potrzeby na pliki czcionek z tej rodziny.

Dodawanie czcionek do elementu TextView

Aby ustawić czcionkę dla elementu TextView, wykonaj jedną z tych czynności:

  • W pliku XML układu ustaw atrybut fontFamily na plik czcionki, do którego chcesz uzyskać dostęp.
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/lobster"/>
  • Otwórz okno Properties, aby ustawić czcionkę dla elementu TextView.
    1. Wybierz widok, aby otworzyć okno Properties (Właściwości).

      Uwaga: okno Properties (Właściwości) jest dostępne tylko wtedy, gdy otwarty jest edytor projektu. U dołu okna wybierz kartę Design (Projekt).

    2. Rozwiń właściwość textAppearance, a następnie wybierz czcionkę z listy fontFamily.
    3. Wybieranie czcionki w oknie Właściwości

      Rysunek 4. Wybieranie czcionki w oknie Properties (Właściwości).

Podgląd układu w Android Studio, widoczny w panelu po prawej stronie na rysunku 5, umożliwia wyświetlenie podglądu czcionki ustawionej w elemencie TextView.

Wyświetlanie podglądu czcionek w podglądzie układu

Rysunek 5. Wyświetlanie podglądu czcionek w podglądzie układu.

Dodawanie czcionek do stylu

Otwórz plik styles.xml i ustaw atrybut fontFamily na plik czcionki, do którego chcesz uzyskać dostęp.

  • <style name="customfontstyle" parent="@android:style/TextAppearance.Small">
        <item name="android:fontFamily">@font/lobster</item>
    </style>
  • Używanie czcionek w sposób zautomatyzowany

    Aby pobrać czcionki w sposób zautomatyzowany, wywołaj metodę getFont(int) i podaj identyfikator zasobu czcionki, którą chcesz pobrać. Ta metoda zwraca a Typeface obiekt. Chociaż system wybiera najlepszy styl na podstawie informacji o czcionkach, możesz użyć setTypeface(android.graphics.Typeface, int) metody, aby ustawić krój pisma z określonymi stylami.

    Uwaga: Element TextView robi to za Ciebie.

    Kotlin

    val typeface = resources.getFont(R.font.myfont)
    textView.typeface = typeface

    Java

    Typeface typeface = getResources().getFont(R.font.myfont);
    textView.setTypeface(typeface);

    Korzystanie z biblioteki pomocy

    Biblioteka pomocy 26.0 obsługuje czcionki w XML na urządzeniach z Androidem 4.1 (poziom interfejsu API 16) lub nowszym.

    Uwaga: Gdy deklarujesz rodziny czcionek w układzie XML za pomocą biblioteki Support Library, użyj przestrzeni nazw app, aby mieć pewność, że czcionki się wczytają.

    <?xml version="1.0" encoding="utf-8"?>
    <font-family xmlns:app="http://schemas.android.com/apk/res-auto">
        <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
        <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" />
    </font-family>

    Aby pobrać czcionki w sposób zautomatyzowany, wywołaj metodę ResourceCompat.getFont(Context, int) i podaj instancję Context oraz identyfikator zasobu.

    Kotlin

    val typeface = ResourcesCompat.getFont(context, R.font.myfont)

    Java

    Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);