Android TextView
Знаходиться у розділіTexts.
TextView- один із найбільш використовуваних компонентів. З його допомогою користувачеві зручніше орієнтуватись у програмі. По суті, це як таблички: Руками не чіпати, По газону не ходити, Вхід з собаками заборонений, Години роботи з 9.00 до 18.00 і т.д., і служить для подання користувачеві описового тексту.
Для відображення тексту уTextViewу файлі розмітки використовується атрибутandroid:text, наприклад:
Такий підхід є небажаним. Рекомендується завжди використовувати текстові ресурси. У майбутньому ця звичка дозволить вам забезпечити багатомовну підтримку:
Програмне встановлення тексту
Програмно можна задати методомsetText():
Для всіх перерахованих вище атрибутів у класіTextViewє відповідні методи для читання або завдання відповідних властивостей.
Програмно встановимо розміри тексту за допомогою setTextSize() з різними одиницями вимірювання.

За замовчуванням компонентиTextViewне мають фонового кольору. Щоб встановити колір, вкажіть значенняDrawableдля атрибутуandroid:background. Як значенняDrawableможе використовуватися зображення або XML-подання фігури, що включає ресурсDrawable(помістити в папкуres/drawable).
Програмне встановлення фону
У деяких випадках програмісти через неуважність неправильно змінюють фон елемента у програмний спосіб і дивуються, чому нічого не працює.
Припустимо, у вас визначений у ресурсах зелений колір:
Наступний код буде помилковим:
Потрібно так (два варіанти):
Реагуємо на подію onClick
Якщо ви бажаєте, щобTextViewобробляв натискання (атрибут)android:onClick), то не забувайте також використовувати у зв'язці атрибутandroid:clickable="true". Інакше не працюватиме!
Багаторядковий текст
Якщо ви хочете створити багаторядковий текст уTextView, використовуйте символи\nдля перенесення рядків.
Наприклад, у ресурсах:
Зверніть увагу, що у тексті також застосовується просте форматування.
Також перенесення на новий рядок можна задати в коді:
Збільшуємо інтервали між рядками
Ви можете керувати інтервалом між сусідніми рядками тексту через атрибутandroid:lineSpacingMultiplier, який є множником. Встановіть дробове значення менше одиниці, щоб зменшити інтервал або більше одиниці, щоб збільшити інтервал між рядками.
Бій з тінню
Щоб оживити текст, можна додатково використовувати атрибути для створення ефектів тіні:shadowColor,shadowDx,shadowDyіshadowRadius. З їх допомогою ви можете встановити колір тіні та її усунення. Під час встановлення значень ви не побачите змін, необхідно запустити приклад у емуляторі або пристрої. У наступному прикладі я створив тінь червоного кольору зі зміщенням у 2 пікселі по вертикалі та горизонталі. Врахуйте, що для усунення використовуються одиниціpx(пікселі), одиниціdpне підтримуються.

Програмний еквівалент - методpublic void setShadowLayer (float radius, float dx, float dy, int color):
Створення посилань автоматично
УTextViewє ще дві цікаві властивостіAuto link(атрибутautoLink) іLinks clickable(атрибутlinksClickable) , які дозволяють автоматично створювати посилання з тексту.
Виглядає це в такий спосіб. Припустимо, ми привласнимоелементуTextViewтекстМій сайт: developer.alexanderklimov.ruі застосуємо до нього зазначені властивості.
Посилання має цікаву особливість - при тривалому натисканні на посилання з'являється діалогове вікно, що дозволяє скопіювати посилання в буфер обміну.
Колір посилання можна змінити через властивістьText color link(XML-атрибутtextColorLink), а програмно через методsetTextLinkColor().
Програмно можна встановити посилання на текст через класLinkify:

У таких випадках доведеться самостійно додати посилання до текстів. Наприклад, визначимо посилання на ресурсі:
Порада: Використовуйте напівпрозорість з розумом
Якщо вам потрібно встановити текст напівпрозорим, не використовуйте атрибутandroid:alpha:
Справа в тому, що такий підхід витрачає багато ресурсів під час перемальовування.
АтрибутtextColorдозволяє встановити напівпрозорість без втрати продуктивності:
Виділити текст для копіювання
За промовчанням текст дляTextViewне можна виділити для копіювання. Але в API 11 з'явилася така можливість, яка може стати в нагоді. Виконується або за допомогою XML-атрибутаandroid:textIsSelectable, або через методsetTextIsSelectable().
Додайте в розмітку два компонентиTextViewта одне текстове полеEditTextдля вставки скопійованого тексту. У першій текстовій мітці встановимо можливість виділення тексту декларативно.
Для другого компонента можливість виділення створимо програмно.
Зробіть довгий тап на тексті у будь-якомуTextView. Побачте стандартні повзунки, щоб вибрати довжину тексту. Скопіюйте текст, зробіть довгий тап уEditTextта вставте текст.