2017-06-12 64 views
5

https://developer.android.com/preview/features/working-with-fonts.htmlUżywanie czcionek w formacie XML API <26

Android API 26 obsługuje to, ale mamy bibliotekę wsparcia, które mogą zapewnić stosowanie czcionek jako zasób w OZE? [czcionka w XML] Jeśli tak, do jakiego interfejsu API jest ono obsługiwane?

Mówię o funkcji Android O SDK, która pozwala nam ustawić czcionkę w XML zgodnie z linkiem powyżej. Na pewno nie jest to funkcja natywna w MM.

+0

Używam tej funkcji w jednej z moich aplikacji, która obsługuje API 9 do interfejsu API 18. Nie ma ograniczeń, o ile wiem. Przestałem obsługiwać API 8, ale domyślam się, że również z nim pracował. –

+0

Którą bibliotekę dodałeś do gradle? – sziraqui

+0

BRAK. Jest to funkcja natywna. Przy okazji, Eclipse nie potrzebuje całej tej "rzeczy Gradle'a";) –

Odpowiedz

13

Według Google jest obsługiwana w Androida 4.0+ (API 14+) o ile spełnione są te warunki :

  • używasz biblioteki podpierającego wersję 26.0.0-beta1 lub później
  • Używasz AppCompat

Źródła:

Fonts in XML - Using the support library

Support Library revision history

Miałem nadzieję, mogę to wykorzystać w widżetów aplikacji na Androidzie wcześniej niż 8 (API 26) jednak nie jest to możliwe, ponieważ AppCompatTextView nie może być używany w widżetach aplikacji. Żadna z alternatywnych stron trzecich do "Czcionek w XML" Androida O, takich jak biblioteka Caligraphy, nie działa w widżetach aplikacji.

jedyną alternatywą widgety dla aplikacji używa ImageView zamiast TextView i stosując RemoteViews metody, takie jak setImageViewUri (...) i setImageViewBitmap (...), zarówno które są problematyczne.

+0

Dzięki. Dlaczego inni mówili, że jest to funkcja natywna? Korzystam z SDK Android Studio 2.3.2. Próbowałem użyć @ font/arial.ttf. To nie działa. Używałem biblioteki pomocniczej w wersji 25.3.1. Teraz wiem, co było nie tak. – sziraqui

+0

czy to działa? niektórzy mówią, że musisz przejść na system Android Studio 3, aby to działało. – user1506104

+0

Dzięki za wskaźnik. Zmieniłem mój na i teraz działa. – tmm1

0

Dla API niższy niż 26 w widoku trzeba użyć app:fontFamily="@font/custom_font_from_resource" zamiast android:font

pracę ze wsparciem lib 26+

1

Niektórzy użytkownicy wyląduje się na tę stronę szukając instrukcje używać niestandardowych czcionek w aplikacji z xml. Oto, jak to zrobiłem:

Katalog zasobów czcionek nie jest domyślnie obecny. Można utworzyć go ręcznie po documentation here [zbyt dużo pracy]

też użyć selektora czcionki z GUI-

  • Wybierz TextView w karcie Projekt.

  • Otwórz listę rozwijaną z fontFamily atrybut xml.

  • Przewiń w dół do "Więcej czcionek".

  • Wybierz „pobraniaRozwiń czcionki” z up pop, które się pojawi.

Android Studio automatycznie tworzy czcionki katalogu zasobów z niezbędnych oświadczeń wymienionych powyżej w dokumentacji. Po tym kroku można skopiować niestandardowej czcionki plik (powiedzmy myfont.ttf) w katalogu czcionek i ustawić żądaną czcionkę z XML na przykład:

<TextView 
    android:fontFamily="@font/myfont" 
    android:id="@+id/aboutus_head_textview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/who_are_we" /> 

Jeśli chcesz użyć tej samej czcionki w całej aplikacji, można ustawić fontFamily swoją AppTheme w styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <!-- custom font for the entire app --> 
     <item name="fontFamily">@font/myfont</item> 
    </style> 

[przedrostek fontFamily z android: jeśli powyżej nie działa]

ekranu:

Screenshot 1

Screenshot 2

Uwaga: Ta odpowiedź zakłada używasz Android Studio 3 + i obsługują bibliotekę w wersji 26+