TextView

Последнее обновление: 15.10.2021

Для простого вывода текста на экран предназначен элемент TextView. Он просто отображает текст без возможности его редактирования. Некоторые его основные атрибуты:

  • android:text: устанавливает текст элемента

  • android:textSize: устанавливает высоту текста, в качестве единиц измерения для указания высоты используются sp

  • android:background: задает фоновый цвет элемента в виде цвета в шестнадцатиричной записи или в виде цветового ресурса

  • android:textColor: задает цвет текста

  • android:textAllCaps: при значении true делает все символы в тексте заглавными

  • android:textDirection: устанавливает направление текста. По умолчанию используется направление слева направо, но с помощью значения rtl можно установить направление справо налево

  • android:textAlignment: задает выравнивание текста. Может принимать следующие значения:

    • center: выравнивание по центру

    • textStart: по левому краю

    • textEnd: по правому краю

    • viewStart: при направлении текста слева направо выравнивание по левому краю, при направлении справа налево - по правому

    • viewEnd: при направлении текста слева направо выравнивание по правому краю, при направлении справа налево - по левому

  • android:fontFamily: устанавливает тип шрифта. Может принимать следующие значения:

    • monospace

    • serif

    • serif-monospace

    • sans-serif

    • sans-serif-condensed

    • sans-serif-smallcaps

    • sans-serif-light

    • casual

    • cursive

    • cursive

Например, определим три текстовых поля:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_margin="10dp"

        android:text="Hello Android "
        android:fontFamily="sans-serif"
        android:textSize="26sp"
        android:background="#ffebee"
        android:textColor="#f44336"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_margin="10dp"

        android:text="Hello Java"
        android:textAllCaps="true"
        android:textSize="26sp"
        android:background="#ede7f6"
        android:textColor="#7e57c2"

        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_margin="10dp"

        android:text="Hello World"
        android:textAlignment="textEnd"
        android:textSize="26sp"
        android:background="#e8eaf6"
        android:textColor="#5c6bc0"
        
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
Атрибуты TextView в Android Studio

Установка элемента в коде тоже не отличается сложностью. Например, создадим элемент и выведем его на экран:

package com.example.viewapp;

import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;

import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ConstraintLayout constraintLayout = new ConstraintLayout(this);
        TextView textView = new TextView(this);
        // установка фонового цвета
        textView.setBackgroundColor(0xffe8eaf6);
        // установка цвета текста
        textView.setTextColor(0xff5c6bc0);
        // делаем все буквы заглавными
        textView.setAllCaps(true);
        // устанавливаем вравнивание текста по центру
        textView.setTextAlignment(TextView.TEXT_ALIGNMENT_CENTER);
        // устанавливаем текста
        textView.setText("Hello Android!");
        // установка шрифта
        textView.setTypeface(Typeface.create("casual", Typeface.NORMAL));
        // устанавливаем высоту текста
        textView.setTextSize(26);

        ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams
                (ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
        layoutParams.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID;
        layoutParams.topToTop = ConstraintLayout.LayoutParams.PARENT_ID;
        textView.setLayoutParams(layoutParams);

        constraintLayout.addView(textView);
        setContentView(constraintLayout);
    }
}
Создание TextView в Java в Android Studio

Иногда необходимо вывести на экран какую-нибудь ссылку, либо телефон, по нажатию на которые производилось бы определенное действие. Для этого в TextView определен атрибут android:autoLink:

<TextView 
    android:text="Посетите сайт https://metanit.com"
    android:textSize="21sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoLink="web|email" 
	
	app:layout_constraintLeft_toLeftOf="parent"
	app:layout_constraintTop_toTopOf="parent"/>
autolink in Android

android:autoLink может принимать несколько значений:

  • none: отключает все ссылки

  • web: включает все веб-ссылки

  • email: включает ссылки на электронные адреса

  • phone: включает ссылки на номера телефонов

  • map: включает ссылки на карту

  • all: включает все вышеперечисленные ссылки

То есть при настройке android:autoLink="web" если в тексте есть упоминание адреса url, то этот адрес будет выделяться, а при нажатии на него будет осуществлен переход к веб-браузеру, который откроет страницу по этому адресу. С помощью прямой черты мы можем объединять условия, как в данном случае: android:autoLink="web|email"

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850