2012-12-23 21 views
7

Mam aplikację na Androida, która wymaga dostosowania, jeśli użytkownik ustawi ich rozmiar czcionki na bardzo duży (Ustawienia -> Wyświetlanie -> Rozmiar czcionki w wersji 4.0 i wyższej).Określanie rozmiaru czcionki użytkownika

Czy istnieje prosty sposób dla mnie, aby powiedzieć, co rozmiar czcionki preferencji użytkownika jest

Aktualizacja:
w moim layout.xml Mam wiersze podobne do do konfiguracji przycisku

android:textAppearance="?android:attr/textAppearanceMedium" 
android:textStyle="bold" 
android:typeface="sans" 

Należy zauważyć, że nie ustawiam bezpośrednio rozmiaru czcionki. Ten układ działa i wygląda dobrze we wszystkich przypadkach, z wyjątkiem ustawienia Extra Large. W takim przypadku, ze względu na ograniczenia miejsca, powoduje on zawijanie tekstu przycisku do 2 linii.

Moim celem jest, aby niewielka zmiana sformułowania w przypadku Extra Large tak, że nie zawijać

Odpowiedz

6

Jest to parametr FONT_SCALE powinieneś być w stanie kwerendy systemu. Nie używałem go samodzielnie, ale wyobrażam sobie zdobycie jej wartość będzie wyglądać mniej więcej tak:

float fontScale = Settings.System.getFloat(context.getContentResolver(), Settings.System.FONT_SCALE) 

Jednak Chciałbym również podkreślić, że zazwyczaj nie powinien mieć do czynienia z tą wartością bezpośrednio. Zamiast tego, używaj jednostek sp dla treści tekstowych, abyś nie musiał się martwić dostosowaniem do preferowanych przez użytkownika rozmiarów czcionek samemu, ale niech system to obsłuży.

Patrz także: Why should we use sp for font sizes in Android?

+0

dobrym punkcie dotyczącym SP, ale nie ma znaczenia w tym przypadku, zobaczyć uaktualnione informacje zawarte w pytaniu – Noah

+0

fontScale powrotu 1.3 dla extralarge. Byłoby miło znaleźć stałe dla tego, ale mogę go teraz użyć. – Noah

+0

Dziwny twój kod rzuca mi 'SettingNotFoundException: font_scale', ale jestem pewien, że twój i mój kod jest poprawny (Android 4.2.2) – rekire

Powiązane problemy