Intereting Posts

Android – программный набор TextView TextStyle?

Есть ли способ установить textStyle атрибут TextView программно? Не существует метода setTextStyle() .

Чтобы быть ясным, я не говорю о стилях View / Widget! Я говорю о следующем:

 <TextView android:id="@+id/my_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World" android:textStyle="bold" /> 

Solutions Collecting From Web of "Android – программный набор TextView TextStyle?"

 textview.setTypeface(Typeface.DEFAULT_BOLD); 

SetTypeface – это атрибут textStyle.

Как добавил Shankar V , чтобы сохранить ранее установленные атрибуты шрифта, вы можете использовать:

 textview.setTypeface(textview.getTypeface(), Typeface.BOLD); 

Допустим, у вас есть стиль RedHUGEText в ваших значениях / styles.xml:

 <style name="RedHUGEText" parent="@android:style/Widget.TextView"> <item name="android:textSize">@dimen/text_size_huge</item> <item name="android:textColor">@color/red</item> <item name="android:textStyle">bold</item> </style> 

Просто создайте TextView как обычно в файле XML layout / your_layout.xml, скажем:

 <TextView android:id="@+id/text_view_title" android:layout_width="fill_parent" android:layout_height="wrap_content android:text="FOO" /> 

И в Java-коде вашей деятельности вы делаете это:

 TextView textViewTitle = (TextView) findViewById(R.id.text_view_title); textViewTitle.setTextAppearance(this, R.style.RedHUGEText); 

Это сработало для меня! И он применял цвет, размер, гравитацию и т. Д. Я использовал его на телефонах и планшетах с уровнями API Android от 8 до 17 без проблем.

Помните … это полезно, только если стиль текста действительно зависит от состояния вашей логики Java или вы создаете пользовательский интерфейс «на лету» с кодом … если это не так, лучше просто делать:

 <TextView android:id="@+id/text_view_title" android:layout_width="fill_parent" android:layout_height="wrap_content android:text="FOO" style="@style/RedHUGEText" /> 

Вы всегда можете это сделать!

Надеюсь, поможет!

Найдите setTextAppearance или setTextTypeface . Аналогичный вопрос возникает в stackoverflow: как изменить стиль TextView во время выполнения

Так много способов решить эту задачу:

1.

 String text_view_str = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"; TextView tv = (TextView)findViewById(R.id.ur_text_view_id); tv.setText(Html.fromHtml(text_view_str)); 

2.

 tv.setTypeface(null, Typeface.BOLD); tv.setTypeface(null, Typeface.ITALIC); tv.setTypeface(null, Typeface.BOLD_ITALIC); tv.setTypeface(null, Typeface.NORMAL); 

3.

 SpannableString spannablecontent=new SpannableString(o.content.toString()); spannablecontent.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 0,spannablecontent.length(), 0); // set Text here tt.setText(spannablecontent); 

4.

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="boldText"> <item name="android:textStyle">bold|italic</item> <item name="android:textColor">#FFFFFF</item> </style> <style name="normalText"> <item name="android:textStyle">normal</item> <item name="android:textColor">#C0C0C0</item> </style> </resources> tv.setTextAppearance(getApplicationContext(), R.style.boldText); 

Или если вы хотите через xml

 android:textStyle="normal" android:textStyle="normal|bold" android:textStyle="normal|italic" android:textStyle="bold" android:textStyle="bold|italic" 

Этот вопрос задают во многих местах по-разному. Я первоначально ответил на это здесь, но я чувствую, что это актуально и в этой теме (так как я оказался здесь, когда искал ответ).

Решение этой проблемы не существует, но это сработало для моего использования. Проблема в том, что конструктор «View (context, attrs, defStyle)» не относится к реальному стилю, он хочет получить атрибут. Итак, мы будем:

  1. Определить атрибут
  2. Создайте стиль, который вы хотите использовать.
  3. Применить стиль для этого атрибута на нашей теме
  4. Создайте новые экземпляры нашего представления с этим атрибутом

В 'res / values ​​/ attrs.xml' определите новый атрибут:

 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="customTextViewStyle" format="reference"/> ... </resources> 

В res / values ​​/ styles.xml «Я собираюсь создать стиль, который я хочу использовать в своем пользовательском TextView

 <style name="CustomTextView"> <item name="android:textSize">18sp</item> <item name="android:textColor">@color/white</item> <item name="android:paddingLeft">14dp</item> </style> 

В разделе «res / values ​​/ themes.xml» или «res / values ​​/ styles.xml» измените тему для вашего приложения / действия и добавьте следующий стиль:

 <resources> <style name="AppBaseTheme" parent="android:Theme.Light"> <item name="@attr/customTextViewStyle">@style/CustomTextView</item> </style> ... </resources> 

Наконец, в вашем пользовательском TextView вы можете теперь использовать конструктор с атрибутом, и он получит ваш стиль

 public class CustomTextView extends TextView { public CustomTextView(Context context) { super(context, null, R.attr.customTextView); } } 

Стоит отметить, что я неоднократно использовал customTextView в разных вариантах и ​​разных местах, но отнюдь не требуется, чтобы имя представления соответствовало стилю или атрибуту или чему-либо еще. Кроме того, этот метод должен работать с любым пользовательским представлением, а не только с TextViews.

Это сработало для меня

 textview.setTypeface(textview.getTypeface(), Typeface.BOLD); 

или

 textview.setTypeface(Typeface.DEFAULT_BOLD); 

Я разрешил это с помощью двух простых методов.

Следуйте объяснениям.

Моя существующая декларация стиля:

 <style name="SearchInfoText"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textSize">24sp</item> <item name="android:textColor">@color/Church_Grey</item> <item name="android:shadowColor">@color/Shadow_Church</item> <item name="android:shadowRadius">3</item> <item name="android:shadowDx">1</item> <item name="android:shadowDy">1</item> </style> 

Мой Android-код Java:

  TextView locationName = new TextView(getSupportActivity()); locationName.setId(IdGenerator.generateViewId()); locationName.setText(location.getName()); locationName.setLayoutParams(super.centerHorizontal()); locationName.setTextSize(24f); locationName.setPadding(0, 0, 0, 15); locationName.setTextColor(getResources().getColor(R.color.Church_Grey)); locationName.setShadowLayer(3, 1, 1, getResources().getColor(R.color.Shadow_Church)); 

С уважением.

Взгляните на это.

Эта функция в настоящее время не поддерживается.

Как настроить атрибут стиля программно в Android?