Android TextView

Намира се в раздела Текстове.

TextView - един от най-използваните компоненти. Това улеснява потребителя в навигацията в програмата. По същество това е като знаци: Не докосвайте с ръце, не ходете по моравата, не се допускат кучета, Работно време от 9.00 до 18.00 и др., и служи за представяне на потребителя с описателен текст.

За показване на текст в TextView файлът за маркиране използва атрибута android: текст, например:

Този подход е нежелан. Препоръчително е винаги да използвате текстови ресурси. В бъдеще този навик ще ви позволи да предоставяте многоезична подкрепа:

Програмно задаване на текст

Текстът може да бъде програмно зададен от метода setText ():

За всички горепосочени атрибути в класа TextView има съответни методи за четене или задаване на съответните свойства.

Задайте размера на текста програмно с setTextSize () с различни единици.

атрибута android

По подразбиране компоненти TextView няма цвят на фона. За да зададете цвят, посочете стойност Теглене за атрибут android: фон. Като ценност Теглене може да се използва изображение или XML представяне на фигурата, включително ресурс Теглене (поставете в папка res/drawable).

Задаване на фона програмно

В някои случаи програмистите поради невнимание неправилно променят фона на елемент програмно и се чудят защо нищо не работи.

Да предположим, че във вашите ресурси има дефиниран зелен цвят:

Следният код ще бъде грешен:

Нуждаете се от това (две опции):

Реагиране на събитието onClick

Ако искаш TextView обработени кликвания (атрибут android: onClick), след това не забравяйте да използвате атрибута android: clickable = "true". В противен случай няма да работи!

Многоредов текст

Ако искате да създадете многоредов текст в TextView, след това използвайте символи \ н за опаковане на линии.

Например в ресурси:

Имайте предвид, че текстът прилага и просто форматиране.

Можете също така да зададете прекъсване на реда в кода:

Увеличаване на разстоянието между редовете

Можете да контролирате разстоянието между съседни редове на текст чрез атрибута android: lineSpacingMultiplier, което е множител. Задайте дробна стойност по-малка от една, за да съкратите разстоянието, или повече от една, за да увеличите разстоянието между редовете.

Бокс в сянка

За да оживите текста, можете допълнително да използвате атрибути, за да създадете сенчести ефекти: сянкаЦвят, shadowDx, shadowDy и shadowRadius. С тяхна помощ можете да зададете цвета на сянката и нейното отместване. Когато задавате стойностите, няма да видите промени, трябва да стартирате примера в емулатора или на устройството. В следващия пример създадох червена сянка с 2px вертикално и хоризонтално отместване. Имайте предвид, че единиците се използват за компенсиране px (пиксели), единици dp Не се поддържа.

атрибута android

Програмен еквивалент - метод public void setShadowLayer (плаващ радиус, плаващ dx, плаващ dy, int цвят):

Автоматично създаване на връзка

Имайте TextView има още два интересни имота Автоматична връзка (атрибут autoLink) и Кликвания върху връзки (атрибут връзки Кликнете), които ви позволяват автоматично да създавате връзки от текст.

Изглежда така. Да предположим, че присвояваме на елемент TextView текст Моят сайт: developer.alexanderklimov.ru и приложете посочените свойства към него.

Връзката има интересна функция - когато щракнете дълго върху връзката, се появява диалогов прозорец, който ви позволява да копирате връзката в клипборда.

Цветът на връзката може да бъде променен чрез свойството Цветова връзка към текста (XML атрибут textColorLink), и програмно чрез метода setTextLinkColor ().

Можете да зададете програмно връзки към текст през класа Linkify:

може бъде

В такива случаи ще трябва сами да добавяте връзки в текстовете. Например, нека дефинираме връзка в ресурс:

Съвет: Използвайте мъдро прозрачност

Ако трябва да зададете текста на полупрозрачен, не използвайте атрибута android: алфа:

Факт е, че този подход изразходва много ресурси при преначертаване.

Атрибут textColor ви позволява да зададете прозрачност, без да жертвате производителността:

Изберете текст за копиране

По подразбиране въведете текст в TextView не може да бъде избран за копиране. Но API 11 въвежда функция, която може да бъде полезна. Това се прави или с помощта на XML атрибут android: textIsSelectable, или чрез метода setTextIsSelectable ().

Добавете два компонента към маркировката TextView и едно текстово поле EditText за да поставите копирания текст. Първият текстов етикет ще има възможност за декларативен избор на текст.

За втория компонент ще създадем програмно възможността за избор.

Направете дълго натискане на текста във всеки TextView. Ще видите стандартните плъзгачи за избор на дължината на текста. Копирайте текста, направете дълго натискане EditText и поставете текста.