Почему TextStyle italic не применяется в Android layout для других шрифтов, кроме serif?

#java #android #android-layout

#java #Android #android-layout

Вопрос:

Ниже приведен простой фрагмент xml, для android:textStyle="italic" которого он не применяется.

Если я удалю android:textStyle="italic , появится текст.

 <TextView
    android:text="row one"
    android:textSize="15pt"
    android:typeface="serif"
    android:textStyle="italic"
    android:textColor="#00abcd"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
  

В приведенном выше android:textStyle="italic" работает только для android:typeface="serif" , если я изменяю шрифт на sans, monospace или normal, он android:text не отображается.

Почему это?

Ответ №1:

попробуйте сделать текст курсивом через strings file, это альтернатива, которая может помочь вам

пример

 <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="Row_one"><i>Row one</i></string>
    <string name="Row_two"><i>Row two</i></string>
</resources>
  

Комментарии:

1. Хорошая мысль, но как настроить динамически изменяющееся содержимое.

2. У меня точно такая же проблема: он корректно отображается в предварительном просмотре Eclipse (курсив), но не на моем устройстве Galaxy Tab 2.

Ответ №2:

Я вам не помогаю, но у меня такая же проблема при настройке шрифта стиль в коде, но только на определенных устройствах Samsung, поэтому это может зависеть от конкретного устройства / производителя.

 int supportedStyles = Typeface.create(TypeFace.DEFAULT, Typeface.BOLD_ITALIC).getStyle();
boolean italicSupported = (supportedStyles amp; Typeface.ITALIC) != 0;
  

Поддерживаемый курсив всегда равен true (за исключением моноширинного пространства), но на нескольких устройствах Samsung (Galaxy II, Note 8) текст не отображается курсивом. Nexus 7 в порядке, Archos 80 в порядке.