Текстовый виджет TextView

| 25.03.2015

Текстовый виджет TextView без сомнения можно назвать наиболее часто используемым виджетом. Это первый элемент View, с которым, как правило, знакомятся начинающие android-разработчики. При создании нового проекта в Android Studio мы видим базовый layout с одним элементом TextView.

Вот пример такого layout-a:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <TextView
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

В данном примере элемент TextView имеет также несколько атрибутов:

- android:text — позволяет задать текст. Здесь мы используем ссылку на строковый ресурс.
- android:layout_width — задает ширину элемента. Значение wrap_content означает, что ширина должна соответствовать ширине текстового содержимого
- android:layout_height — задает высоту элемента. Аналогично ширине, высота в данном примере соответствует «высоте контента», то есть размеру шрифта + небольшие отступы.

TextView может иметь и другие атрибуты. Рассмотрим наиболее часто используемые:

- android:id — id элемента (уникальный идентификатор) виджета
- android:layout_marginLeft — отступ от элемент слева
- android:layout_marginRight — отступ от элемента справа
- android:paddingLeft — внутренний отступ слева
- android:paddingRight — внутренний отступ справа
- android:gravity — центрирование внутри элемента. Обычно применяется, если, например, ширина элемента имеет значение match_parent. Подробнее про атрибут gravity можно почитать в статье Свойства android:gravity и android:layout_gravity

Вот как может выглядеть использование всех этих атрибутов:

<TextView
        android:id="@+id/txtV"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:gravity="center"
        android:text="@string/hello_world"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

Мы получим вот такую картинку:

Текстовый виджет TextView

Мы можем добавлять в TextView текст программно. Для этого используется метод setText(). Пример:

package ru.androiddocs.textviewexample;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TextView txtV = (TextView) findViewById(R.id.txtV);
        txtV.setText(R.string.new_text);
    }
}

R.string.new_text — это идентификатор строкового ресурса из res/values/strings.xml, который мы хотим добавить.

Также мы можем выводить в TextView текст с html-тегами

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*