- TextView
- Программная установка текста
- Атрибуты
- Программная установка фона
- Реагируем на событие onClick
- Многострочный текст
- Увеличиваем интервалы между строками
- Бой с тенью
- Создание ссылок автоматом
- Совет: Используйте полупрозрачность с умом
- Выделить текст для копирования
- Как изменить текст на жирный в Android?
- Как изменить текст на жирный шрифт в Android?
- 4 Ways to make Android TextView Bold
- Way 1 – make Android TextView bold using android:textStyle attribute
- Way 2 – make Android TextView bold using setTypeface() method
- Way 3 – make Android TextView bold using Html.fromHtml() method
- Way 4 – Make Android TextView Bold using separate style
- Step 1
- Step 2
- Step 1
- Step 2
- build.gradle(Project: TextView Bold – Kotlin)
- build.gradle(Module: app)
- gradle.properties
- colors.xml
- strings.xml
- styles.xml
- activity_main.xml
- MainActivity.kt
- Как установить стиль шрифта полужирным, курсивом и подчеркнутым в Android TextView?
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?
Как изменить настройки текста / шрифта в Android TextView ?
Например, как вы делаете текст жирным ?
Для этого в layout.xml файле:
Программно метод состоит в следующем:
Устанавливает шрифт и стиль, в котором должен отображаться текст. Обратите внимание, что не во всех Typeface семьях есть варианты, выделенные жирным шрифтом и курсивом, поэтому вам, возможно, придется использовать их, setTypeface(Typeface, int) чтобы получить тот вид, который вам действительно нужен.
Просто вы можете сделать следующее:
Установите атрибут в XML
Программно метод заключается в:
Надеюсь, это поможет вам поблагодарить вас.
Вы можете использовать только определенные шрифты sans , serif и monospace через XML, код Java может использовать пользовательские шрифты
Программно (код Java)
Для случая, когда вы используете пользовательские шрифты, но не имеете жирного шрифта для шрифта, который вы можете использовать:
Это очень просто
Если вы рисуете это, то это сделает это:
В идеальном мире вы бы задали атрибут стиля текста в своем определении XML макета следующим образом:
Существует простой способ динамического достижения того же результата в вашем коде с помощью setTypeface метода. Вам нужно передать и объект класса Typeface , который будет описывать стиль шрифта для этого TextView. Таким образом, чтобы достичь того же результата, что и в приведенном выше определении XML, вы можете сделать следующее:
Первая строка создаст объект в предопределенном стиле (в данном случае Typeface.BOLD , но есть еще много ). Когда у нас есть экземпляр гарнитуры, мы можем установить его в TextView. И это все, что наш контент будет отображаться в стиле, который мы определили.
Я надеюсь, что это вам очень поможет. Для более подробной информации вы можете посетить
Из XML вы можете установить TextStyle к жирному шрифту , как показано ниже
С программной точки зрения, вы можете установить TextView жирным шрифтом, как показано ниже
Определите новый стиль с нужным форматом в файле style.xml в папке значений
Затем примените этот стиль к TextView, написав следующий код со свойствами TextView.
Источник
Как изменить текст на жирный шрифт в Android?
Как изменить настройки текста / шрифта в Android TextView ? Например, как сделать текст полужирным ?
Для этого в файле layout.xml :
Устанавливает шрифт и стиль, в котором должен отображаться текст. Обратите внимание, что не все семейства Typeface имеют жирный и курсивный варианты, поэтому вам может понадобиться использовать setTypeface(Typeface, int) чтобы получить видимость, которую вы действительно хотите.
Просто вы можете сделать следующее:
Установить атрибут в XML
Программно этот метод:
Надеюсь, это поможет вам поблагодарить вас
Вы можете использовать только специальные шрифты sans , serif & monospace через xml, код Java может использовать пользовательские шрифты
Программно (код Java)
Если вы его рисуете, это сделает это:
Это очень легко
Для случая, когда вы используете пользовательские шрифты, но не имеете полужирного шрифта для шрифта, который вы можете использовать:
В идеальном мире вы бы установили атрибут стиля текста в вашем XML-определении макета:
Существует простой способ добиться того же результата динамически в вашем коде с помощью метода setTypeface . Вам нужно передать и объект класса Typeface , который будет описывать стиль шрифта для этого TextView. Таким образом, чтобы достичь такого же результата, как и в определении XML выше, вы можете сделать следующее:
Первая строка создаст предопределенный стиль формы объекта (в данном случае Typeface.BOLD , но есть еще много предопределенных). Как только у нас есть экземпляр шрифта, мы можем установить его в TextView. И вот наш контент будет отображаться в стиле, который мы определили.
Надеюсь, вам это поможет. Для получения более подробной информации вы можете посетить
Определите новый стиль с нужным вам форматом в файле style.xml в папке значений
Затем примените этот стиль к TextView, написав следующий код со свойствами TextView
Вы можете использовать это для шрифта
Создать имя класса TypefaceTextView и расширить TextView
Приватная статическая карта mTypefaces;
Вставьте шрифт в папку шрифтов, созданную в папке с ресурсами
Поместите строки в родительский макет в xml
Источник
4 Ways to make Android TextView Bold
In this tutorial, you will learn how to make Android TextView bold. There are 4 ways in this tutorial, you can easily learn, adapt the code and use it in your project as you like. Let’s start.
Way 1 – make Android TextView bold using android:textStyle attribute
android:textStyle attribute is the first and one of the best way to make the text in TextView bold. just use “bold”.
Way 2 – make Android TextView bold using setTypeface() method
TextView has a method called setTypeface() which needs
- Typeface
- Int styleflag
In our case, leave Typeface as null, use styleflag Typeface.BOLD.
Way 3 – make Android TextView bold using Html.fromHtml() method
The fromHtml() method returns displayable styled text from given Html string. Using this advantage, we can make our text in TextView bold.
If you got Manifest merger failed error, then add below code in gradle.properties.
HtmlCompat.FROM_HTML_MODE_LEGACY – It just adds two newline character between block level elements.
Way 4 – Make Android TextView Bold using separate style
In this example, we create a separate style resource and set it to our TextView. The advantage of this technique – you can use this style for many TextViews. Just specifying style attribute.
Step 1
Create a separate style resource named “boldStyle”, add “android:textStyle” as item and provide value “bold”.
Step 2
Set style to TextView using style attribute.
Let’s create an Android app with these examples. Open your Android Studio,
Step 1
Start a new Android Studio project
Company domain: androidride.example.com
Step 2
Select minimum SDK: API 15 – Android 4.0.3 (Ice Cream Sandwich) and click Next.
Next dialog, Select Empty Activity and click Next.
Activity Name: MainActivity
Check Generate layout file
Layout Name: activity_main
build.gradle(Project: TextView Bold – Kotlin)
build.gradle(Module: app)
gradle.properties
colors.xml
strings.xml
styles.xml
activity_main.xml
MainActivity.kt
Run Now android textview bold
If you find anything useful, please share it.
Thank you.
Источник
Как установить стиль шрифта полужирным, курсивом и подчеркнутым в Android TextView?
Я хочу сделать содержание TextView жирным, курсивным и подчеркнутым. Я попробовал следующий код, и он работает, но не подчеркивает.
Как мне это сделать? Быстрые идеи?
Я не знаю о подчеркивании, но для смелого и курсивного есть «bolditalic» . Здесь не упоминается подчеркивание: http://developer.android.com/reference/android/widget/TextView.html#attr_android:textStyle
Имейте в виду, что использовать упомянутый bolditalic вам нужно, и я цитирую с этой страницы
Должен быть один или несколько (разделенных символом ‘|’) следующих постоянных значений.
Поэтому вы должны использовать bold|italic
Вы можете проверить этот вопрос для подчеркивания: могу ли я подчеркнуть текст в макете android?
Это должно сделать ваш TextView полужирным , подчеркнутым и курсивным одновременно.
strings.xml
Чтобы установить эту строку в TextView, сделайте это в своем main.xml
Или в JAVA ,
Иногда вышеупомянутый подход не будет полезен, когда вам, возможно, придется использовать динамический текст. Поэтому в этом случае SpannableString вступает в действие.
ВЫВОД
Или просто так в Котлине:
Держите это просто и в одной строке 🙂
Для жирного и курсивного, что вы делаете, правильно для подчеркивания использовать следующий код
Это простой способ добавить подчеркивание, сохраняя другие настройки:
Вы можете программно использовать метод setTypeface ():
Ниже приведен код для шрифта по умолчанию
И если вы хотите установить пользовательский Typeface:
Вы можете установить Directly в файле XML следующим образом:
Без кавычек работает для меня:
Если вы читаете этот текст из файла или из сети.
Вы можете достичь этого, добавив теги HTML в свой текст, как упомянуто
А затем вы можете использовать класс HTML, который обрабатывает строки HTML в виде отображаемого стилизованного текста.
Источник