wydaje się, że nie odpowiada na to pytanie lub nie mogę go rozwiązać.Niespójność przy ustawianiu rozmiaru czcionki TextView w kodzie i zasobach
element (Nevermind AlertDialog
, dzieje się w dowolnym, jak również TextView)
TextView tv = (TextView) dialog.findViewById(android.R.id.message);
niespójność. Przypadek A:
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
// or tv.setTextSize(14); does the same
Przypadek B:
tv.setTextSize(getResources().getDimension(R.dimen.text_size_small));
// TypedValue makes no difference either.
gdzie values/dimens.xml
ma go:
<dimen name="text_size_small">14sp</dimen>
Wynik: rozmiar czcionki nie jest taka sama, a wydaje się dużo większy przy pobieraniu z zasobu. Prawdopodobnie czegoś brakuje, więc jaki jest mój błąd i najważniejsze: dlaczego?
- UPDATE DO pierwsza odpowiedź -
Stały numer był tylko przykład, jak nikt nie będzie trudno kod ustalone rozmiary czcionek w kodzie. Więc pozwól mi przeformułować pytanie:
Dlaczego, jeśli otrzymam zasób z kodu, rozmiar tekstu jest większy niż gdy otrzymam zasób z układu XML? Poza tym pytanie pozostaje takie samo: jak mogę odzyskać jednostkę 14sp w kodzie i zachować ją spójną z jednostką 14sp, która jest ustawiona w układzie XML? Nie zaakceptowałem odpowiedzi, ponieważ nie mówi mi, jak używać sp jednostek z zasobów w kodzie dla rozmiaru tekstu.
W tym układzie, rozmiar czcionki jest inny, nawet jeśli wymiar jest taka sama:
<TextView
android:id="@+id/my_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/TextBody" />
styles.xml:
<style name="TextBody">
<item name="android:textSize">@dimen/text_size_small</item>
<item name="android:lineSpacingMultiplier">1.1</item>
<item name="android:textColor">@color/body_text_1</item>
<item name="android:textIsSelectable">true</item>
<item name="android:linksClickable">true</item>
</style>
Zobacz text_size_small tam? Dlaczego w tym przypadku rozmiar czcionki jest mniejszy niż w kodzie, używając tego samego zasobu dimen
?
Dziękuję za podniesienie tej kwestii. Dostaję to również w moim projekcie. – anticafe