Подтвердить что ты не робот

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

Я создаю textView программно. Есть ли способ, которым я могу установить стиль этого textView? Что-то похожее на

style="@android:style/TextAppearance.DeviceDefault.Small"

который я бы использовал, если у меня был файл layout.xml.

4b9b3361

Ответ 1

Вы не можете программно установить стиль представления, но вы можете сделать что-то вроде textView.setTextAppearance(context, android.R.style.TextAppearance_Small);.

Ответ 2

В настоящее время невозможно установить стиль представления программно.

Чтобы обойти это, вы можете создать XML файл макета шаблона с назначенным стилем, например, в res/layout create tvtemplate.xml, как со следующим содержимым:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is a template"
        style="@android:style/TextAppearance.DeviceDefault.Small" />

затем раздуйте это, чтобы создать новый TextView:

TextView myText = (TextView)getLayoutInflater().inflate(R.layout.tvtemplate, null);

Ответ 3

Попробуйте это

textview.setTextAppearance(context, R.style.yourstyle);

это может не сработать. Попробуйте создать xml с текстовым изображением, подобным этому.

textviewstyle.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="@android:style/TextAppearance.DeviceDefault.Small" />

Чтобы получить желаемый стиль, надуйте xml, который содержит textview

TextView myText = (TextView)getLayoutInflater().inflate(R.layout.tvstyle, null);

Ответ 4

Собственно, это возможно с уровня API 21.

TextView имеет конструктор параметров :

TextView (Context context, 
          AttributeSet attrs, 
          int defStyleAttr, 
          int defStyleRes)

В этом случае средние два параметра не нужны. Следующий код создает TextView непосредственно в действии и определяет только его ресурс стиля:

TextView myStyledTextView = new TextView(this, null, 0, R.style.my_style);

Ответ 5

Для представлений, сгенерированных во время выполнения (в коде), вы можете передать стиль конструктору: View (Context, AttributeSet, int)

В другом случае вам нужно вызвать varios методы для изменения apperance

Ответ 6

@Deprecated
public void setTextAppearance(Context context, @StyleRes int resId)

этот метод устарел, как на Android SKD 23.

вы можете использовать безопасную версию:

if (Build.VERSION.SDK_INT < 23) {
    super.setTextAppearance(context, resId);
} else {
    super.setTextAppearance(resId);
}