Dodawanie czcionki jako zasobu XML

W Androidzie 8.0 (poziom interfejsu API 26) wprowadziliśmy czcionki w formacie XML – funkcję, która umożliwia używanie czcionek jako zasobów. Możesz dodać plik font do folderu res/font/, aby grupować czcionki jako zasoby. Czcionki te są kompilowane w pliku R i automatycznie dostępne w Android Studio. Dostęp do zasobów czcionek możesz uzyskać, korzystając z typu zasobu font. Aby na przykład uzyskać dostęp do zasobu czcionki, użyj @font/myfont lub R.font.myfont.

Aby korzystać z czcionek w pliku XML na urządzeniach z Androidem 4.1 (poziom interfejsu API 16) lub nowszym, użyj biblioteki pomocy technicznej 26.0. Więcej informacji o używaniu 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 Nowy > Katalog zasobów Androida. Pojawi się okno Nowy katalog zasobów.
  2. Na liście Typ zasobu wybierz czcionkę i kliknij OK.

    Uwaga: katalog zasobów musi mieć nazwę font.

    Dodawanie katalogu zasobów czcionek

    Rysunek 1. Dodaję katalog zasobów czcionek.

  3. Dodaj pliki czcionek do folderu font.

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

    Dodawanie plików czcionek do katalogu zasobów

    Rysunek 2. Dodaję pliki czcionek do katalogu res/font.

  4. Kliknij dwukrotnie plik czcionek, aby wyświetlić podgląd czcionek z pliku w edytorze. Podgląd pliku czcionek

    Rysunek 3. Podgląd pliku czcionek.

Tworzenie rodziny czcionek

Rodzina czcionek to zestaw plików czcionek wraz ze szczegółami dotyczącymi stylu i grubości. Na Androidzie możesz utworzyć nową rodzinę czcionek jako zasób XML i korzystać z niej jako pojedynczej jednostki, zamiast traktować każdy styl i wagę jako osobne zasoby. Dzięki temu system będzie mógł 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 Nowy > Plik zasobów czcionek. Pojawi się okno Nowy plik zasobu.
  2. Wpisz nazwę pliku i kliknij OK. W edytorze otworzy się nowy plik XML zasobu czcionki.
  3. Wszystkie pliki czcionek, style i atrybuty wagi umieść w elemencie <font>. Poniższy kod XML pokazuje dodawanie atrybutów związanych z czcionkami 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 w jednym pliku czcionek lub w czcionce z rodziny czcionek w obiektach TextView lub w stylach przy użyciu atrybutu fontFamily.

Uwaga: gdy używasz rodziny czcionek, w razie potrzeby TextView przełącza się automatycznie, aby używać plików czcionek z tej rodziny.

Dodawanie czcionek do 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 Właściwości, aby ustawić czcionkę dla: TextView.
    1. Wybierz widok, aby otworzyć okno Właściwości.

      Uwaga: okno Właściwości jest dostępne tylko wtedy, gdy otwarty jest edytor projektu. Wybierz kartę Projekt u dołu okna.

    2. Rozwiń właściwość textVisual, a następnie wybierz czcionkę z listy fontFamily.
    3. Wybieranie czcionki we właściwościach

      Rysunek 4. Wybierz czcionkę z okna Właściwości.

Podgląd układu Android Studio widoczny w panelu po prawej stronie na Rysunku 5 pozwala zobaczyć podgląd czcionki ustawionego w elemencie TextView.

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

Rysunek 5. Podgląd 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>
    
  • Automatyczne używanie czcionek

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

    Uwaga: TextView zrobi 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 formacie XML na urządzeniach z Androidem 4.1 (poziom interfejsu API 16) i nowszym.

    Uwaga: jeśli deklarujesz rodziny czcionek w układzie XML za pomocą Biblioteki pomocy, użyj przestrzeni nazw app, aby upewnić się, że czcionki zostaną wczytane.

    <?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 automatycznie pobierać czcionki, wywołaj metodę ResourceCompat.getFont(Context, int) i podaj wystąpienie Context oraz identyfikator zasobu.

    Kotlin

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

    Java

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