Как создать собственное текстовое представление в Android?

1

Hi

Может ли кто-нибудь сказать мне, как создать собственный пользовательский текстовый вид в Android? Я хочу установить разные цвета для шрифта textview. Может ли кто-нибудь привести пример?

  • 4
    Это кажется чрезмерным для изменения цвета текста. Есть ли причина, по которой TextView.setTextColor(color) недостаточно для вашей ситуации?
Теги:

3 ответа

2
Лучший ответ

Что бы вы ни хотели:

public class SimpleTextView extends TextView
{
    private static int color=Color.RED;

    public SimpleTextView(Context context)
    {
        super(context);
        this.setTextColor(color)
    }

    public SimpleTextView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        this.setTextColor(color)
    }

    public SimpleTextView(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
        this.setTextColor(color)
    }

    public static void setGlobalColor(int gcolor)
    {
        color=gcolor;
    }

}

Поэтому в любое время вы можете изменить цвет своих текстовых полей по всему миру.

3

Как прокомментировал eldarerathis, это немного переборщило, если бы вы создали пользовательский TextView только для изменения цвета текста.

Тем не менее вот учебник о том, как создать пользовательский TextView.

Построение пользовательского компонента в Android-разработчике также хорошо читается, я бы рекомендовал вам сначала прочитать его.

Суммируйте 3 шага:

  • Расширьте существующий класс или подкласс класса с собственным классом.
  • Переопределить некоторые методы из суперкласса. Суперкласс методы для отмены запуска с 'on', например, onDraw(), onMeasure(), и onKeyDown(). Это похоже на события... в действии или ListActivity, которую вы переопределяете для жизненный цикл и другие функции Крючки.
  • Используйте новый класс расширения. После завершения вашего нового расширения класс можно использовать вместо вида на котором он был основан.
1

Если все, что вы хотите сделать, это установить цвет текста, вы можете использовать атрибут textColor.

<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="MyText"
android:textColor="#FFFFFF"
/>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню