- Григоренко Г. Н.
- Уроки по программированию мобильных устройств на основе ОС Android
- Просмотров: 12762
Android. Текстовые поля
Текстовые поля в Android представлены двумя классами:
- TextView;
- EditText.
Виджет Textview предназначен для отображения текста без возможности редактирования его пользователем. Виджет поддерживает многострочное отображение, форматирование и автоматический перенос слов и символов.
Если необходимо редактирование текста, используется виджет EditText.
Классы Textview и EditText имеют множество атрибутов и методов, наследуемых от класса View, который рассмотрим позже.
Иерархия классов текстовых полей представлена ниже:
У элемента 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 трактуется так:
что соответствует записи в более привычном формате для многих языков программирования: 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 по образцу:
Удалите строковый ресурс “hello_world”, созданный по умолчанию
Требуемый текст задайте в следующих местах:
УЦКО «Турбо»! - в файле разметки
Лабораторная работа № 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:…
/>