Ответ 1
Ну, я нашел глупый ответ на эту проблему. Я использовал пользовательский шрифт на устройстве, а не по умолчанию. Как только я переключился на стандартный, все работало, как ожидалось!
Вот XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/modal_list_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="7.5dp"
android:orientation="vertical" >
<TextView
android:id="@+id/title_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="@string/alert_title_small"
android:textColor="@color/alert_dialog_text_color"
android:textSize="@dimen/alert_dialog_title_font_size"
android:textStyle="bold" />
</RelativeLayout>
Хотя графический макет отображает жирный текст, на устройстве это не так. Это вещь устройства или что?
Update:
Для тех, кто продолжает просить полный XML, здесь он обновляется. Простая относительная компоновка. И вот код Java:
this.titleTextView.setText(this.modalListState.title);
О чем подумать: возможно ли это из-за шрифтов устройства? Кто-нибудь имеет Galaxy S3 для подтверждения? Это может быть стиль деятельности? Вот тот, который используется для всего приложения:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
<style name="TransparentActivity" >
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">false</item>
</style>
Стиль TransparentActivity используется для соответствующей активности.
Ну, я нашел глупый ответ на эту проблему. Я использовал пользовательский шрифт на устройстве, а не по умолчанию. Как только я переключился на стандартный, все работало, как ожидалось!
существует один метод, вы можете установить шрифт textview, вызвав метод setTypeface...
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
а также ссылку на эту ссылку...
Размер шрифта, определенный в файле измерений, возможно, не был выбран во время прогона. Угадайте, что вы не используете приложение в эмуляторе.
Отметьте следующее, чтобы убедиться, что это не устройство.
Большинство ответов верны.
Вы также можете использовать так называемый SpannableString
Вы можете использовать его следующим образом:
String bold = "yes !";
String notBold = "no ";
SpannableString text = new SpannableString ( notBold + bold );
text.setSpan ( new StyleSpan ( Typeface.BOLD ) , notBold.length () , text .length () , 0 );
myTextView.setText ( text , BufferType.SPANNABLE );
Что приятно в SpannableString, так это то, что вы можете применять mutliple spans, каждый из которых находится в разных частях строки! Как вы заметили, я применил полужирный шрифт только к части строки (вы указываете начальный и конечный индексы), и она должна выглядеть так:
no да!
В методе setSpan вы указываете применяемый SPAN, начальный индекс, конечный индекс и флаги (я всегда использую 0) в этом конкретном порядке.
Вы можете даже применять другие промежутки, например изменить размер текста (используйте RelativeSizeSpan) или даже цвет ( используйте ForegroundColorSpan) и многое другое!
Вот пример цветового диапазона, который вы можете достичь следующим образом:
text.setSpan ( new ForegroundColorSpan ( Color.RED) , 0 , notBold .length () , 0 );
И теперь первая часть строки (содержащая слово no) будет отображаться красным цветом!
Попробуйте использовать теги HTML в файле strings.xml. Вот как вы можете это сделать, android string.xml чтение html-тегов проблемы
Чтобы сделать это программно,
TextView t = new TextView(mContext);
t.setText(Html.fromHtml("<b>This is bold</b>"));
Я столкнулся с аналогичной проблемой с экранированным символом <
. Вместо этого вы должны использовать <
. Например:
<string name="greetings"><b>From Russia with love</b></string>
Он написан на официальном сайте .
Создайте собственную тему для или всего макета устройства. и установите в свой текст.
Я думаю, что проблема в тексте будет очень медленной, поэтому вы можете получить какой-либо эффект.
Если у вас есть тест на эту проблему, измените размер шрифта до 40 секунд и выполните что случилось?
Не могли бы вы разместить все ваши коды java и xml, чтобы мы могли получить дополнительную информацию о вашей проблеме?
Возможно, проблема не в TextView, который вы показываете нам, но пока
android:textStyle="bold"
похоже, работает над вашим графическим расположением.
Должна быть выделена жирная/курсивная/подчеркнутая (то есть целевая) версия шрифта. Система не волшебным образом создает его для вас.
Таким образом, убедитесь, что включен целевой вариант вашего шрифта.