- TextView
- Программная установка текста
- Атрибуты
- Программная установка фона
- Реагируем на событие onClick
- Многострочный текст
- Увеличиваем интервалы между строками
- Бой с тенью
- Создание ссылок автоматом
- Совет: Используйте полупрозрачность с умом
- Выделить текст для копирования
- Русские Блоги
- Несколько способов добавить подчеркивание в Android TextView
- Чтобы нарисовать подчеркивание под TextView в Android
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Как установить подчеркивание текста в textview?
- 9 ответов
- Могу ли я подчеркнуть текст в макете android?
- 20 ответов
- одна линия решение
TextView
Компонент TextView предназначен для отображения текста без возможности редактирования его пользователем, что видно из его названия (Text — текст, view — просмотр).
Находится в разделе 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 и применим к нему указанные свойства.
При этом уже на этапе разработки вы увидите, что строка адреса сайта после слов Мой адрес: стала ссылкой. Если вы запустите приложение и нажмете на ссылку, то откроется браузер с указанным адресом. Вам даже не придется писать дополнительный код. Аналогично, если указать номер телефона (параметр phone), то запустится звонилка.
У ссылки есть интересная особенность — при длительном нажатии на ссылку появляется диалоговое окно, позволяющее скопировать ссылку в буфер обмена.
Атрибут autoLink позволяет комбинировать различные виды ссылок для автоматического распознавания: веб-адрес, email, номер телефона.
Цвет ссылки можно поменять через свойство Text color link (XML-атрибут textColorLink), а программно через метод setTextLinkColor().
Программно можно установить ссылки на текст через класс Linkify:
Кроме константы ALL, можно также использовать Linkify.EMAIL_ADDRESSES, Linkify.MAP_ADDRESSES, Linkify.PHONE_NUMBERS. К сожалению, русские адреса не распознаются. В моём случае индекс был распознан как телефонный номер, а город и улица не стали ссылкой.
В таких случаях придётся самостоятельно добавить ссылки в текстах. Например, определим ссылку в ресурсе:
Присвоим созданный ресурс тексту в TextView и запустим пример. Сам текст будет выглядеть как ссылка, но реагировать не будет. Чтобы исправить данную проблему, добавим код:
Ссылки в тексте выглядят не совсем удобными. Есть отдельная библиотека, которая улучшает функциональность. Описание проблем и ссылка на библиотеку есть в статье A better way to handle links in TextView — Saket Narayan.
Совет: Используйте полупрозрачность с умом
Если вам нужно установить текст полупрозрачным, то не используйте атрибут android:alpha:
Дело в том, что такой подход затрачивает много ресурсов при перерисовке.
Атрибут textColor позволяет установить полупрозрачность без потери производительности:
Выделить текст для копирования
По умолчанию, текст в TextView нельзя выделить для копирования. Но в API 11 появилась такая возможность, которая может пригодиться. Делается либо при помощи XML-атрибута android:textIsSelectable, либо через метод setTextIsSelectable().
Добавьте в разметку два компонента TextView и одно текстовое поле EditText для вставки скопированного текста. У первой текстовой метки установим возможность выделения текста декларативно.
Для второго компонента возможность выделения создадим программно.
Сделайте долгий тап на тексте в любом TextView. Увидите стандартные ползунки для выбора длины текста. Скопируйте текст, сделайте длинный тап в EditText и вставьте текст.
Источник
Русские Блоги
Несколько способов добавить подчеркивание в Android TextView
В общем, есть около 5 способов сделать это.:
Запишите текст для обработки в файл ресурсов,Например, string.xml (отформатированный с использованием html)
Когда в тексте появляются URL, адрес электронной почты, номер телефона и т. Д., Вы можете изменить TextView.android: атрибут autoLinkУстановите соответствующее значение, если все типы выходят, это ** android: autoLink = «all»,
Конечно, это также можно сделать в java-коде,textView01.setAutoLinkMask(Linkify.ALL); **
использоватьFromHtml () класса HtmlМетод форматирования текста, который будет помещен в TextView, такой же, как и у первого типа, за исключением того, что он динамически задается кодом.
Установите свойство Paint TextView:tvTest.getPaint (). setFlags (Paint. UNDERLINE_TEXT_FLAG); // подчеркивание
Используйте Spannable или класс, который его реализует, напримерSpannableStringЧтобы отформатировать часть строки.
Также есть введение в блог:Китайский текст Android TextView использует SpannableString для установки гиперссылок, цветов, шрифтов и других атрибутов.
Если он находится в файле ресурсов:
1. Установите атрибут подчеркивания в строковом ресурсе.
Просто позвольте TextView ссылаться на имя строкового ресурса.
2. TextView устанавливает атрибут autoLink.
Если это в коде:
1. Используйте Html.fromHtml ()
2. Используйте свойства Paint в TextView.
3. Используйте класс SpannableString.
Настройте стиль гиперссылки в коде:
Источник
Чтобы нарисовать подчеркивание под TextView в Android
Я хочу нарисовать подчеркивание ниже моего TextView . Я искал несколько материалов, но не мог найти ничего полезного.
Кто-нибудь может помочь мне здесь?
ОТВЕТЫ
Ответ 1
Существует три способа подрыва текста в TextView.
Позвольте мне объяснить вам все подходы:
1-й подход
Чтобы поднять текст в TextView, вы должны использовать SpannableString
Второй подход
Вы можете использовать setPaintFlags метод TextView, чтобы подчеркнуть текст TextView.
Вы можете ссылаться на константы класса Paint, если хотите нанести удар по тексту.
Третий подход
ИЛИ
Ответ 2
просто окружает ваш текст с помощью в файле ресурсов string.xml
и в вашей деятельности/фрагменте
Ответ 3
Его работы для меня.
Ответ 4
Для всех, кто все еще смотрит на это querstion. Это для гиперссылки, но вы можете изменить ее для простого подчеркивания:
Создайте drawable (hyperlink_underline.xml):
Создайте новый стиль:
Затем используйте этот стиль в TextView:
Ответ 5
Простое и устойчивое решение — создать список слоев и сделать его фоном вашего TextView:
Ответ 6
Если ваш TextView имеет фиксированную ширину, альтернативным решением может быть создание представления, которое будет выглядеть как подчеркивание и расположить его прямо под вашим TextView.
Источник
Как установить подчеркивание текста в textview?
любая идея тела об этом, как установить подчеркнутый текст в textview? если да, пожалуйста, скажите.
я использовал следующий код, но он не работает.
9 ответов
вы должны использовать SpannableString для этого :
обновление : вы можете сослаться на мой ответ на подчиненного здесь всеми возможными способами.
использовать
Ниже приведены некоторые подходы для подчеркнутого текста в Android:
1-й подход
вы можете определить строку в strings.xml
и используйте эту строку в своем
или вы можете использовать эту строку в вашей деятельности/фрагмент
2-й подход
чтобы подчеркнуть текст в TextView, вы можете использовать SpannableString
3-й подход
вы можете использовать метод setPaintFlags TextView для подчеркивания текста TextView.
4-й подход
или
Примечание:
если вы добавили эту строку android:textAllCaps=»true» в вашем макете, то ни один из вышеперечисленных не будет работать. Для это, вы должны определить свою строку в шапках, а затем любой из вышеперечисленных подходов.
вы почти там: только не звоните toString() on Html.fromHtml() и вы получаете охватываемый объект, который будет выполнять эту работу;)
попробуйте это,
Android поддерживает форматирование строк с помощью HTML-код теги в строках xml. Таким образом, будет работать следующее:
тогда вы просто используете его, как обычно. Вы можете увидеть больше в документации здесь
обновление:
для дальнейшего расширения ответа,документация говорит:
. the format(String, Object. ) и getString(int, Object. ) методы очищают всю информацию о стиле от строка. . Работа вокруг этого заключается в написании HTML-тегов с экранированными сущностями, которые затем восстанавливаются с помощью fromHtml(String) после форматирования
например, результирующая строка из следующего фрагмента кода будет не показать как содержащие подчеркнутые элементы:
однако результат от следующего фрагмента б содержать знаки подчеркивания:
Не нужно использовать свойства HTML, давайте сосредоточимся на java xD У меня была такая же проблема, я нашел способ сделать это в Java:
Я считаю, что нужно использовать CharSequence. Вы можете найти пример здесь.
Источник
Могу ли я подчеркнуть текст в макете android?
Как я могу определить подчеркнутый текст в макете Android ?
20 ответов
Это может быть достигнуто, если вы используете string resource xml-файл, который поддерживает HTML-теги, такие как , и .
если вы хотите подчеркнуть что-то из кода использовать:
» принятый » ответ выше делает не работа (при попытке использовать строку, как textView.setText(Html.fromHtml(String.format(getString(. ), . ))) .
как говорится в документация вы должны избежать (HTML entity encoded) открытие скобки внутренних тегов с , например, результат должен выглядеть так:
потом в коде можно задать текст:
решение одной строки:
макет xml-файла shold используйте вышеуказанный строковый ресурс с нижеприведенными свойствами textview, как показано ниже:
для кнопки и TextView это самый простой способ:
одна линия решение
I am Underlined text
Это немного поздно, но может быть полезным для кого-то.
Я знаю, что это поздний ответ, но я придумал решение, которое работает довольно хорошо. Я взял ответ от Энтони Форлони для подчеркивания текста в коде и создал подкласс TextView, который обрабатывает это для вас. Затем вы можете просто использовать подкласс в XML всякий раз, когда вы хотите иметь подчеркнутый TextView.
вот класс, который я создал:
сейчас. всякий раз, когда вы хотите создать подчеркнутый textview в XML, вы просто делаете следующий:
я добавил дополнительные параметры в этот фрагмент XML, чтобы показать, что мой пример работает с изменением цвета, размера и стиля текста.
надеюсь, что это помогает!
проверьте подчеркнутый кликабельный стиль кнопки:
строки.XML-код:
самый последний подход рисования подчеркнутым текстом описан Ромэном Гаем на средний С доступным исходным кодом на GitHub. Этот пример приложения предоставляет две возможные реализации:
- реализация на основе Пути, которая требует уровня API 19
- реализация на основе региона, которая требует уровня API 1
Источник