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:
- Kliknij prawym przyciskiem myszy folder res i wybierz Nowy > Katalog zasobów Androida. Pojawi się okno Nowy katalog zasobów.
- Na liście Typ zasobu wybierz czcionkę i kliknij OK.
Uwaga: katalog zasobów musi mieć nazwę font.
- Dodaj pliki czcionek do folderu
font
.Poniższa struktura folderów generuje pliki
R.font.dancing_script
,R.font.lobster
iR.font.typo_graphica
. - Kliknij dwukrotnie plik czcionek, aby wyświetlić podgląd czcionek z pliku w edytorze.
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:
- Kliknij prawym przyciskiem myszy folder
font
i wybierz Nowy > Plik zasobów czcionek. Pojawi się okno Nowy plik zasobu. - Wpisz nazwę pliku i kliknij OK. W edytorze otworzy się nowy plik XML zasobu czcionki.
- 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
.- 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.
- Rozwiń właściwość textVisual, a następnie wybierz czcionkę z listy fontFamily.
- Wybierz widok, aby otworzyć okno 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
.
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);