Top.Mail.Ru

Android. Текстовые поля

text polТекстовые поля в Android представлены двумя классами:

  • TextView;
  • EditText.

Виджет Textview предназначен для отображения текста без возможности редактирования его пользователем. Виджет поддерживает многострочное отображение, форматирование и автоматический перенос слов и символов.

Если необходимо редактирование текста, используется виджет EditText.

Классы Textview и EditText имеют множество атрибутов и методов, наследуемых от класса View, который рассмотрим позже.

Иерархия классов текстовых полей представлена ниже:

text pol1

У элемента Textview есть многочисленные методы и ХМL-атрибуты для работы с текстом.

Вот основные ХМL-атрибуты, отображающие свойства элемента TextView:

1. Для задания текста в файле разметки используется атрибут

android:text

например:

android:text="УЦКО «Турбо»!"

2. Размер текста

android:textsize

При установке размера текста используются несколько единиц измерения:

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

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

android:textSize="48sp";

3. Стиль текста

android:textstyie

Используются константы:

  • normal;
  • bold;
  • italic.

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

android:textStyle="bold";

4. Цвет текста

android:textcolor

Используются четыре формата в шестнадцатеричной кодировке:

  • #RGB; (сокращенная запись)
  • #ARGB;
  • #RRGGBB;
  • #AARRGGBB; (полная запись)

где R, G, B— соответствующий цвет, А— прозрачность (alpha-channel). Значение А, установленное в 0, означает прозрачность 100%. Значение по умолчанию, без указания значения alpha, — непрозрачно.

Например, #f00 или #F00 – это сокращенная запись (между строчными и прописными разницы нет), ff или FF – соответствует десятичному значению 255, поэтому запись #000000ff в соответствии с форматом #AARRGGBB трактуется так:

text pol2

что соответствует записи в более привычном формате для многих языков программирования: ARGB(0,0,0,255) - работает синяя пушка.

А вот пример определения цвета в XML файле.

<?xml version="1.0" encoding="utf-8"?>

<resources>

<color name="red">#f00</color>

<color name="green">#0f0</color>

<color name="blue">#00f</color>

<color name="back">#000</color>

<color name="white">#fff</color>

<color name="yellow">#ffff00</color>

<color name="_green">#ff00ff00</color>

</resources>

Задать текст для Textview можно в трех местах:

  • в программном коде
  • непосредственно в XML файле
  • в строковых ресурсах – рекомендуемый способ

Задание текста программном коде

В файле разметки должен быть размещен элемент TextView, например, с id= @+id/textView1, далее в программном коде текст задается методом setText():

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

TextView text (TextView)findViewById(R.id.text1);

// задаем текст непосредственно в коде программы

text.setText("Hello, Android!");

Задание текста непосредственно в XML файле

Тест сразу отображается в файле разметки. Пример:

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="УЦКО «Турбо»!"

/>

Здесь:

wrap_content — элемент имеет размер по своему содержимому

Задание текста в строковых ресурсах

В файле ресурсов strings.xml задаем текст, например, "Hello, Android!" и имя этому ресурсу name="hello_android”. Вот пример:

Файл strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">Hello</string>

<string name="action_settings">Settings</string>

<string name="hello_android"> Hello, Android!</string>

</resources>

Далее, в файле разметки activity_main.xml, указываем ссылку на строковый ресурс

Файл activity_main.xml

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_android" />

Вот еще одна возможность

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

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

TextView text (TextView)findViewById(R.id.text1);

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

text.setText(R.string.hello_android);

Выполнение лабораторной работы

Создайте приложение MyTextView по образцу:

text pol3

Удалите строковый ресурс “hello_world”, созданный по умолчанию

text pol4 

Требуемый текст задайте в следующих местах:

УЦКО «Турбо»! - в файле разметки

Лабораторная работа № 2 - в строковых ресурсах

Copyright (C) 2013 Turbo – в коде программы

Стиль, размер, цвет текста задается в файле разметки при описании виджета Textview, например:

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textStyle="bold"

android: далее, другие, требуемые XML атрибуты

android:…

android:…

/>