Для простого вывода текста на экран предназначен элемент 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>
Установка элемента в коде тоже не отличается сложностью. Например, создадим элемент и выведем его на экран:
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 определен атрибут 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"/>
android:autoLink может принимать несколько значений:
none: отключает все ссылки
web: включает все веб-ссылки
email: включает ссылки на электронные адреса
phone: включает ссылки на номера телефонов
map: включает ссылки на карту
all: включает все вышеперечисленные ссылки
То есть при настройке android:autoLink="web" если в тексте есть упоминание адреса url, то этот адрес будет выделяться, а при нажатии на него
будет осуществлен переход к веб-браузеру, который откроет страницу по этому адресу. С помощью прямой черты мы можем объединять условия, как в данном случае:
android:autoLink="web|email"