TextView

 

Виджет Textview — самый простой и в то же время один из самых используемых в приложениях виджетов. Textview служит для представления пользователю описательного текста. Текст может иметь отношение к другому элементу управления либо к текущему состоянию системы. Кроме того, элемент Textview используется как элемент для отображения текстовых данных в контейнерных виджетахсписках.

В примерах, приведенных далее, будет активно применяться этот элемент для отображения состояния элементов при обработке событий.

Для отображения текста в Textview в файле разметки используется атрибут android: text, например:

android:text="Hello, Android!"

В программном коде текст задается методом setText ():

  1. загружаем виджет из ресурсов TextView text (TextView)findViewByld(R.id.text3);
  2. задаем текст непосредственно в коде программы text.setText("Hello, Android!");

Если планируется создание приложения с многоязыковой поддержкой пользовательского интерфейса, вместо непосредственного задания текста в XML разметке или в коде программы необходимо создать ссылку на текстовый XMLpecypc:

android:text="@string/text_hello", где text_hello— имя ресурса.

В коде программы ссылка на XMLpecypc задается методом setText (), который принимает ссылку на идентификатор ресурса, определенного в файле R.java (автоматически сгенерированным средой разработки), например:

TextView text (TextView)findViewByld(R.id.text) ;

// задаем текст из ресурсов

text.setText(R.string.text_hello);

У элемента TextView есть многочисленные методы и XMLатрибуты для работы с текстом. Например, основные XMLатрибуты, отображающие свойства элемента TextView:

  • android: textsize— размер текста. При установке размера текста используются несколько единиц измерения:
  • рх (pixels) — пикселы;
  • dp (densityindependent pixels) — независимые от плотности пикселы. Это абстрактная единица измерения, основанная на физической плотности экрана;
  • sp (scaleindependent pixels) — независимые от масштабирования пикселы;
  • in (inches) — дюймы, базируются на физических размерах экрана;
  • pt (points) — 1/72 дюйма, базируются на физических размерах экрана;
  • mm (millimeters) — миллиметры, также базируются на физических размерах экрана.

Обычно при установке размера текста используются единицы измерения sp, которые наиболее корректно отображают шрифты, например:

android:textSize="48sp";
  • android: textstyle — стиль текста. Используются константы:
  1. normal;
  2. bold;
  3. talic.

Пример установки стиля через атрибуты:

android:textStyle="bolct";
  • android:textcolor— цвет текста. Используются четыре формата в шест надцатеричной кодировке:
  1. #rgb;
  2. #argb;
  3. #rrggbb;
  4. #aarrggbb;

где r, g, в — соответствующий цвет, а — прозрачность (alphachannel). Значение А, установленное в О, означает прозрачность 100%. Значение по умолчанию, без указания значения alpha, — непрозрачно.

Для всех вышеперечисленных атрибутов в классе TextView есть соотв'етст вующие методы для чтения или задания соответствующих свойств.

В качестве примера приложения с виджетом TextView создайте новый проект и в диалоге Create New Project введите следующие значения:

  • Project name — TextView;
  • Application name — TextView Sample;
  • Package name — сот. samples. textview;
  • Create Activity — TextViewActivity.

Откройте файл разметки и создайте разметку LinearLayout и в ней четыре элемента TextView с идентификаторами textl, text2, text3, text4. Для textl задайте текст непосредственно в XMLкоде:

android:text="Hello, Android!"

Для элемента text2 текст задайте через ссылку на строковый ресурс. Можно также задать различный размер, цвет и стиль форматирования текста для элементов text3 и text4. Полный код файла разметки показан в листинге.

Файл разметки main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, Android!"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_hello"
android:textStyle="bold"/>
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="36sp"
android:textStyle="bold"
android:textColor="#ABABAB"/>
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="48sp"
android:textStyle="italic"/>

</LinearLayout>

В файле ресурсов strings.xml добавьте после ресурса appname новый строковый ресурс "Hello, Android!" .

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TextView Sample</string>
<string name="text_hello">Hello, Android!</string>
</resources>

В классе TextViewActivity инициализируйте TextView объекты text3, text4 и методом setText () задайте для них текст. Полный код класса показан в листинге.

Файл класса деятельности TextViewActivity.java

package com.samples.textview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class TextViewActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final TextView text3 = (TextView)findViewById(R.id.text3);
text3.setText("Hello, Android!");

final TextView text4 = (TextView)findViewById(R.id.text4);
text4.setText(R.string.text_hello);
}
}

 

Приложение с виджетами TextView

Запустите проект на выполнение. Результат должен получиться, как на рисунке. Для первого поля текст задается прямо в файле разметки, для второго — в файле разметки из ресурса, для третьего — задается в коде, для четвертого поля — читается в коде из файла ресурсов.