EDIT: Z niektórymi eksperymentowanie, szczególnie z Galaxy S3, która pozwala użytkownikowi na zmianę ich czcionka, to co odkryłem:
- Korzystanie
Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL)
powróci th przy CUSTOM typeface zamiast domyślnej czcionki sans-serif (tj. Roboto)
- Zamiast tego należy użyć
Typeface.create("sans-serif", Typeface.NORMAL)
(lub BOLD) i spowoduje to powrót Roboto niezależnie od dostosowania czcionki użytkownika. Z poniższej listy możesz użyć "helvetica", "tahoma", "verdana" lub "arial" powyżej zamiast "sans-serif" z tym samym wynikiem.
znalazłem dokument zwany system_fonts.xml
że wydaje się potwierdzać, że Roboto zostaną wykorzystane do jakiegokolwiek odniesienia do Typeface.SANS_SERIF
w katalogu SDK pod:
platform> android-14> Dane> Czcionki
<!--
System Fonts
This file lists the font families that will be used by default for all supported glyphs.
Each entry consists of a family, various names that are supported by that family, and
up to four font files. The font files are listed in the order of the styles which they
support: regular, bold, italic and bold-italic. If less than four styles are listed, then
the styles with no associated font file will be supported by the other font files listed.
The first family is also the default font, which handles font request that have not specified
specific font names.
Any glyph that is not handled by the system fonts will cause a search of the fallback fonts.
The default fallback fonts are specified in the file /system/etc/fallback_fonts.xml, and there
is an optional file which may be supplied by vendors to specify other fallback fonts to use
in /vendor/etc/fallback_fonts.xml.
-->
<familyset>
<family>
<nameset>
<name>sans-serif</name>
<name>arial</name>
<name>helvetica</name>
<name>tahoma</name>
<name>verdana</name>
</nameset>
<fileset>
<file>Roboto-Regular.ttf</file>
<file>Roboto-Bold.ttf</file>
<file>Roboto-Italic.ttf</file>
<file>Roboto-BoldItalic.ttf</file>
</fileset>
</family>
Od czcionek dostawcy muszą być umieszczone w fallback_fonts.xml
i czcionki systemowe będą zawsze traktowane priorytetowo, a pierwsza wymieniona rodzina to Roboto pod pseudonimami sans-serif, aria, helvetica, tahoma lub verdana, chyba że dowiem się, że w przeciwnym razie można bezpiecznie założyć, że Roboto będzie Czcionka zwrócona dla połączenia z numerem Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL)
.
Nadal pozostawiam to otwarte na razie, mając nadzieję na ostateczną odpowiedź, ponieważ nie jestem pewien, czy producent OEM może modyfikować system_fonts.xml. Jeśli tak, to wcale nie jest to pomocne.
Nie jestem do końca pewien na ten temat, ale domyślny motyw Holo nie określa kroju pisma, a jedynie rozmiar i styl tekstu, który umożliwiłby producentom wybór czcionek do wysyłki/użytkowania. – ebarrenechea
@ebarrenchea Nawet nie jestem pewien i nie mogę znaleźć oficjalnego miejsca w dokumentacji lub dokumentach zgodności, które potwierdzają lub zaprzeczają temu, dlatego zdecydowałem się powiedzieć "AFAIK" –
Po prostu zadzwoniłem do Adama Powella (który napisał [ten artykuł] (http://android-developers.blogspot.com/2012/01/holo-everywhere.html)) w Google+, aby sprawdzić, czy możliwe jest wyjaśnienie. – kcoppock