Zastosowałem niestandardową czcionkę TextView
, ale wydaje się , że nie zmienia to kroju pisma.
Oto mój kod:
Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf");
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(myTypeface);
Czy ktoś może wyciągnąć mnie z tego problemu?
android
custom-font
android-fonts
android-typeface
GRZECHOTNIK
źródło
źródło
myTextView.setTypeface(myTypeface);
Odpowiedzi:
W Mobiletuts + jest bardzo dobry samouczek na temat formatowania tekstu dla Androida. Szybka wskazówka: dostosuj czcionki Android
EDYCJA: Sam to przetestowałem. Oto rozwiązanie. Możesz użyć podfolderu o nazwie czcionki, ale musi on znajdować się w
assets
folderze, a nie wres
folderze. WięcUpewnij się również, że końcówka czcionki Mam na myśli, że końcówka samego pliku czcionki jest pisana małymi literami. Innymi słowy, nie powinno tak być,
myFont.TTF
ale w ten sposób należy pisaćmyfont.ttf
małymi literamiźródło
createFromAsset
assets
Po wypróbowaniu większości rozwiązań opisanych w tym wątku przypadkowo znalazłem Calligraphy ( https://github.com/chrisjenx/Calligraphy ) - bibliotekę Christophera Jenkinsa, która umożliwia łatwe dodawanie niestandardowych czcionek do aplikacji. Zalety jego lib w porównaniu do sugerowanych tutaj podejść to:
źródło
Wiem, że są już dobre odpowiedzi, ale oto w pełni działająca implementacja.
Oto niestandardowy widok tekstu:
Oto niestandardowe atrybuty. To powinno przejść do twojego
res/attrs.xml
pliku:A oto jak go wykorzystujesz. Użyję układu względnego, aby go zawinąć i pokazać
customAttr
deklarację, ale oczywiście może to być dowolny układ, który już masz.źródło
customAttrs
odnosi się mój projekt?xmlns:customAttrs="http://schemas.android.com/apk/res-auto"
. Spowoduje to automatyczne ustawienie atrybutów dla niestandardowych widoków. W tym przypadku masz atrybut o nazwie customFont zdefiniowany w attrs.xml Łatwiejszym sposobem na zrozumienie jest sprawdzenie,xmlns:android="http://schemas.android.com/apk/res/android"
która określa przestrzeń nazw dla atrybutów Androida. Więc jeśli to zmieniłeś,a
to zamiastandroid:text
tego byłobya:text
.Z powodzeniem korzystałem z tego wcześniej. Jedyna różnica między naszymi implementacjami polega na tym, że nie używałem podfolderu w zasobach. Nie jestem jednak pewien, czy to coś zmieni.
źródło
Pod warunkiem, że umieściłeś czcionkę we właściwym miejscu i nie ma błędu w samym pliku czcionki, twój kod powinien tak działać, RATTLESNAKE.
Byłoby jednak o wiele łatwiej, gdybyś mógł po prostu zdefiniować czcionkę w swoim układzie xml, tak jak to:
Z towarzyszącym
res/values/styles.xml
:Stworzyłem kilka narzędzi specjalnie do tego celu. Zapoznaj się z tym projektem z GitHub lub spójrz na ten post na blogu, który wyjaśnia całą sprawę.
źródło
Najlepszym sposobem na to Z wersji zapoznawczej Androida O jest następujący sposób:
Działa tylko, jeśli masz Android Studio w wersji 2.4 lub nowszej
Zostanie wyświetlone okno Nowy katalog zasobów.
R.font.dancing_script
,R.font.la_la
orazR.font.ba_ba
.Następnie musimy stworzyć rodzinę czcionek:
Dołącz każdy plik czcionki, styl i wagę do elementu znacznika czcionki. Poniższy kod XML ilustruje dodawanie atrybutów związanych z czcionkami w kodzie XML zasobu czcionki:
Dodawanie czcionek do TextView:
Z dokumentacji
Wszystkie kroki są prawidłowe.
źródło
W przypadku czcionek niestandardowych w systemie Android utwórz folder w nazwie folderu zasobów, to „czcionki” umieść w nim żądany plik fonts.ttf lub .otf.
Jeśli rozszerzysz UIBaseFragment:
w przeciwnym razie rozszerzenie aktywności:
źródło
Możesz użyć PixlUI w https://github.com/neopixl/PixlUI
zaimportuj plik .jar i użyj go w formacie XML
źródło
Ponieważ nie byłem zadowolony ze wszystkich prezentowanych rozwiązań na SO, wymyśliłem swoje. Opiera się na małej sztuczce ze znacznikami (tzn. Nie możesz używać znaczników w kodzie), umieszczam tam ścieżkę czcionki. Podczas definiowania widoków możesz wykonać jedną z tych czynności:
albo to:
Teraz możesz albo bezpośrednio uzyskać dostęp / skonfigurować widok jako:
lub po prostu skonfiguruj wszystko za pomocą:
A o jaką klasę magii pytasz? W większości przyklejony z innych postów SO, z metodami pomocniczymi zarówno dla aktywności, jak i fragmentów:
źródło
Niestety nie ma na to dobrego rozwiązania.
Widziałem wiele artykułów na temat korzystania z niestandardowego TextView, ale zapominają o tym, że nie tylko widoki tekstowe mogą implementować czcionki, a także widoki tekstowe ukryte w innych widokach niedostępnych dla programisty; Nie zamierzam nawet zaczynać od Spannable .
Możesz użyć zewnętrznego narzędzia do czcionek, takiego jak:
Narzędzie czcionki kaligrafii
ALE To zapętla się nad każdym widokiem w aplikacji podczas jej tworzenia, a nawet to narzędzie pomija niektóre widoki (ViewPager renderuje normalną czcionkę), wtedy masz problem polegający na tym, że kiedy Google aktualizuje swoje narzędzia do kompilacji, to czasami się zawiesza, ponieważ musi być ukierunkowany na przestarzałe właściwości. Jest również trochę powolny, ponieważ wykorzystuje odbicie Java .
Naprawdę to zależy od Google. Potrzebujemy lepszej obsługi czcionek w systemie Android. Jeśli spojrzysz na rozwiązanie z iOS, mają dosłownie 100 wbudowanych czcionek do wyboru. Chcesz niestandardową czcionkę? Po prostu wrzuć TFF i można go użyć.
Na razie ograniczyliśmy się do oferty Google, która jest bardzo ograniczona, ale na szczęście zoptymalizowana pod kątem urządzeń mobilnych.
źródło
Pamiętaj, aby wkleić powyższy kod do onCreate () po wywołaniu super i wywołaniu setContentView (). Ten drobny szczegół trzymał mnie przez pewien czas rozłączony.
źródło
W systemie Android 8.0 korzystanie z niestandardowych czcionek w aplikacji stało się łatwe
downloadable fonts
. Możemy dodawać czcionki bezpośrednio dores/font/ folder
folderu projektu, a dzięki temu czcionki stają się automatycznie dostępne w Android Studio.Teraz ustaw
fontFamily
atrybut na listę czcionek lub kliknij więcej i wybierz czcionkę do wyboru. Spowoduje to dodanietools:fontFamily="@font/your_font_file"
wiersza do TextView.Spowoduje to automatyczne wygenerowanie kilku plików.
1. W folderze wartości zostanie utworzony
fonts_certs.xml
.2. W Manifeście doda następujące linie:
3)
preloaded_fonts.xml
źródło
Możesz użyć łatwej i prostej biblioteki innej firmy EasyFonts, aby ustawić różne niestandardowe czcionki
TextView
. Korzystając z tej biblioteki, nie musisz się martwić o pobieranie i dodawanie czcionek do folderu asset / fonts. Także o tworzeniu obiektów kroju pisma.Zamiast
Po prostu:
Ta biblioteka zapewnia także następującą czcionkę.
źródło
Miałem ten sam problem, TTF się nie pojawił. Zmieniłem plik czcionki i działa z tym samym kodem.
źródło
Jeśli chcesz załadować czcionkę z sieci lub łatwo ją stylizować, możesz użyć:
https://github.com/shellum/fontView
Przykład:
źródło
Cóż, po siedmiu latach możesz łatwo zmienić całą aplikację
textView
lub co chcesz, używającandroid.support
bibliotek 26 ++.Na przykład:
Utwórz aplikację pakietu czcionek / src / res / font i przenieś do niej swoją czcionkę.
A do motywu aplikacji po prostu dodaj go jako fontFamily:
Przykład użycia
textView
tylko z :I dodaj do głównego motywu:
Obecnie działa na 8.1 do 4.1 API Jelly Bean I to szeroki zakres.
źródło
Zaktualizuj odpowiedź: Android 8.0 (poziom API 26) wprowadza nową funkcję, Czcionki w XML. po prostu użyj funkcji Czcionki w XML na urządzeniach z Androidem 4.1 (API poziom 16) i wyżej, skorzystaj z Biblioteki pomocy 26.
zobacz ten link
Stara odpowiedź
Istnieją dwa sposoby dostosowywania czcionek:
Sposób 1: Poprawka Typeface.class ||| Najlepszym sposobem
wywołanie FontsOverride.setDefaultFont () w klasie rozszerza aplikację, ten kod spowoduje zmianę wszystkich czcionek oprogramowania, nawet czcionek Toast
AppController.java
FontsOverride.java
Sposób 2: użyj setTypeface
dla specjalnego widoku wystarczy wywołać setTypeface (), aby zmienić czcionkę.
CTextView.java
FontUtils.java
źródło
Prawidłowy sposób wykonania tego w API 26 opisano w oficjalnej dokumentacji tutaj:
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
Obejmuje to umieszczenie plików ttf w folderze res / font i utworzenie pliku rodziny czcionek.
źródło
Najprostsze rozwiązanie obsługiwane teraz przez Androida!
Użyj niestandardowej czcionki w xml:
zobacz szczegóły:
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
źródło
TextView txt = (TextView) findViewById(R.id.txt_act_spalsh_welcome); Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Aramis Italic.ttf"); txt.setTypeface(font);
nazwa czcionki musi być poprawna i dobrze się bawić
źródło
Tak, czcionki do pobrania są tak proste, jak powiedział Dipali .
Tak to się robi...
TextView
.fontFamily
menu rozwijane. Jeśli go tam nie ma, znajdź to ostrzeżenie (>> i kliknij, aby rozwinąćtextAppearance
) pod.font-family
rozwijaną.more fonts
Google Fonts
Add font to project
BONUS: Jeśli chcesz stylizować WSZYSTKO za pomocą tekstu w aplikacji za pomocą wybranej czcionki, po prostu dodaj
<item name="android:fontfamily">@font/fontnamehere</item>
do swojegostyles.xml
źródło