Android studio цвет шрифта

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().

Читайте также:  Mtk android drivers rar

Программно можно установить ссылки на текст через класс 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 O

Russian (Pусский) translation by Ellen Nelson (you can also view the original English article)

А вот и первая предварительная версия Android O!

В этой серии мы рассмотрим некоторые из современных функций пользовательского интерфейса, с которыми вы можете начать экспериментировать сегодня, в версии Android O для предварительного ознакомления разработчиками.

В первом совете я показал вам, как настроить свою разработку для поддержки этого раннего предварительного просмотра O, и как создать текст, который автоматически масштабируется в соответствии с текущей конфигурацией экрана. В этом совете мы увидим, как Android O сделает работу с пользовательскими шрифтами беззаботной.

Добавление ваших шрифтов в проект

Вы когда-нибудь хотели выделить отдельный фрагмент текста? Или, может быть, вы были убеждены, что ваш шрифт станет отличным способом добавить в ваше приложение дополнительную индивидуальность?

Хотя есть много преимуществ при использовании пользовательских шрифтов, работа с ними на Android традиционно была болезненным опытом, требуя, чтобы вы либо использовали библиотеку, либо создали пользовательский View .

К счастью, работа с пользовательскими шрифтами в Android будет намного проще, так как пользовательские шрифты станут полностью поддерживаемым типом ресурсов в Android O. Это означает, что добавление пользовательского шрифта в ваше приложение будет таким же простым, как добавление любого другого ресурса, например изображения и текста.

Чтобы следовать этому руководству, вам понадобятся несколько файлов шрифтов, которые вы можете добавить в проект с Android O, который мы создали в первой части.

Android O поддерживает оба формата: .otf (OpenType) и .ttf (TrueType). Существует множество веб-сайтов, предлагающих такие шрифты бесплатно, поэтому потратьте несколько минут на поиск в Google, пока не найдете нужный шрифт.

Поскольку мы просто экспериментируем с новыми функциями Android O, не имеет особого значения, какой шрифт вы используете, но если вы ищете шрифты для использования в релизах вашего приложения, вы всегда должны смотреть условия использования этого шрифта. Только потому, что файл доступен для загрузки, не означает автоматически, что нет ограничений на то, как вы можете использовать и обращаться с этим файлом, поэтому всегда читайте мелкий текст!

Вы также должны задуматься о цели, содержании и целевой аудитории вашего приложения, так как разные шрифты передают разные сообщения. Если вы разрабатываете приложение, помогающее людям заполнять их налоговые декларации, то ваша аудитория с трудом сможет серьезно отнестись к финансовым и юридическим советам в вашем приложении, если оно поставляется со непонятным и странным шрифтом!

Читайте также:  Top android ru роблокс

Как только вы найдете шрифт, с которым хотите работать, загрузите и разархивируйте его. На этом этапе вы должны проверить имя файла шрифта на наличие недопустимых символов — по сути это, что угодно, что не входит в строчные a-z, 0-9 или символ подчеркивания. Попробуйте использовать любые другие символы и Android Studio выдаст ошибку, как только вы попытаетесь сослаться на этот ресурс.

Так как у вас есть файл(ы) шрифтов, вам надо будет где-то их хранить:

  • Правый клик по папке app/res вашего проекта и выберите New > Android resource directory.
  • Откройте выпадающее меню и выберите font.
  • Введите font в File name.
  • Нажмите OK.

    Переместите файлы вашего шрифта в новую папку res/font.

    Использование своих шрифтов

    Вы можете применить свой шрифт к тексту, используя новый XML атрибут android:fontFamily :

    Вы можете добавить пользовательский шрифт к любым стилям, которые вы создали в приложении.

    Если вы хотите использовать свой шрифт программно, когда вы можете извлечь ваш шрифт используя метод getFont(int) , например:

    Создание семейства шрифта

    Иногда при распаковке папки со шрифтом вы можете обнаружить несколько версий одного и того же шрифта, например, курсивную версию, или шрифты с различной толщиной.

    Если вы используете несколько версий одного и того же шрифта, вы можете сгруппировать их вместе в семейство шрифтов. Семейство шрифтов по существу является отдельным XML-файлом, в котором вы определяете каждую версию шрифта со всеми связанными с ним атрибутами стиля и веса.

    Чтобы создать семейство шрифтов:

    • Убедитесь, что вы добавили все файлы шрифта в папку res/font вашего проекта.
    • Щелкните правой кнопкой мыши по папке res/font вашего проекта и выберите New > Font resource file.
    • Дайте этому файлу имя и нажмите OK.
    • Откройте этот XML-файл и определите все различные версии этого шрифта, а также их атрибуты стиля и веса, например:

    Затем вы можете ссылаться на любой из шрифтов в этом семействе, используя атрибут android:fontFamily . Например:

    Не забудьте протестировать!

    В то время, как легко увлечься новыми функциями, не заходите за рамки пользовательских шрифтов! Согласованные UI легче в навигации и понимании, а если ваше приложение постоянно переключается между шрифтами, тогда ваши пользователи скорее обратят больше внимание на то, как выглядит ваш текст, а не на то, что о чем он говорит.

    Если вы добавляете пользовательские шрифты в свой проект, важно проверить, как этот шрифт отображается в широком диапазоне различных конфигураций экрана, поскольку вашим главным приоритетом всегда должна быть удобочитаемость текста.

    Заключение

    В этом совете я показала вам, как создать более стильный и уникальный текст, добавив пользовательские шрифты в свои проекты. В заключительном посте этой серии мы переведём наш фокус с текста на изображения, так как я покажу вам, как создавать адаптивные значки запуска, которые автоматически адаптируют свою форму в соответствии с текущим устройством.

    В то же время ознакомьтесь с некоторыми из наших других руководств по разработке приложений для Android!

    Источник

    Как установить цвет текста TextView в коде?

    В XML мы можем установить цвет текста с помощью атрибута textColor , например, android:textColor=»#FF0000″ . Но как мне его изменить путем кодирования?

    Я попробовал что-то вроде:

    Где holder – это просто класс, а text имеет тип TextView . Красный – это значение RGB (# FF0000), установленное в строках.

    Но он показывает другой цвет, а не красный. Какой параметр мы можем передать в setTextColor ()? В документации это говорит int , но является ли это ссылочным значением ресурса или чем-то еще?

    Вы должны использовать:

    Для проверки здравомыслия я просто попробовал, потому что у меня был проект в любом случае, и да, это красиво и красно, D

    Вы можете использовать различные функции из класса Color чтобы получить тот же эффект, конечно.

    Color.parseColor (Manual) (например, LEX)

    Color.rgb и Color.argb ( Manual rgb ) ( ручной аргумент ) (например, использование Ganapathy )

    И, конечно, если вы хотите определить свой цвет в XML файле, вы можете сделать это:

    Потому что функция getColor() устарела 1 , вам нужно использовать ее так:

    Вы также можете вставить простой HEX, например:

    Сначала у вас есть альфа-канал, затем значение цвета.

    Разумеется, вы получите полное руководство, открытый класс Color extends Object .

    1 Этот код также был здесь:

    Этот метод теперь устарел в Android M. Однако вы можете использовать его из contextCompat в библиотеке поддержки , как показывает пример.

    Если вы все еще хотите указать свои цвета в XML-файле:

    Затем укажите его в коде с помощью одного из этих двух методов:

    Первое, вероятно, предпочтительнее, если вы компилируете на Android M, однако тема, которую вы передаете, может быть нулевой, так что, может быть, вам это проще?

    И если вы используете библиотеку «Совместимость», вы можете сделать что-то вроде этого

    Вы можете сделать это только из XML-файла.

    Создайте файл color.xml в папке значений:

    Затем в любом XML-файле вы можете установить цвет текста, используя,

    Или вы можете использовать этот цвет в файле Java:

    Вы можете использовать

    Вы также можете указать, какой цвет вы хотите с помощью Transparency.

    A для значения Alpha (прозрачное) r-red g-green b-blue

    Обычно я делаю это для любых просмотров:

    AA определяет альфа (00 для прозрачных, FF для непрозрачных)

    RRGGBB определяет нормальный код цвета HTML (например, FF0000 для красного).

    Используйте следующий код в layout.xml

    Если вы планируете использовать setTextAppearance, вы должны знать, что он перепишет цвет текста стилем, унаследованным от темы. Поэтому, если вы хотите использовать оба варианта, установите цвет потом .

    Хотя это приведет к тому, что ваш текст будет выглядеть, например, белым (для темной темы) или черным (для легкой темы):

    Вопреки этому в XML порядок произволен.

    Я считаю, что если вы хотите указать цвет как ресурс (в файле XML ), вам нужно будет указать его значение ARGB (а не просто значение RGB).

    Попробуйте изменить значение цвета на #FFFF0000 . Он должен дать вам КРАСНЫЙ.

    Существует множество способов задать цвет в текстовом режиме.

    Добавить значение цвета в studio res-> values-> colors.xml as

    Теперь задайте цвет в классе xml или actvity как

    Если вы хотите, чтобы код цвета напрямую использовался ниже Color.parseColor code

    Вы также можете использовать RGB

    Использование также может использовать прямой hexcode для textView. Вы также можете вставить простой HEX, например:

    Вы также можете использовать argb с альфа-значениями.

    A для альфа (прозрачный) v.

    И если вы используете библиотеку «Совместимость», вы можете сделать что-то вроде этого

    holder.text.setTextColor(Color.rgb(200,0,0));
    или
    myTextView.setTextColor(0xAARRGGBB);

    Используя адаптер, вы можете установить цвет текста с помощью этого кода:

    text1.setTextColor (Color.parseColor ( «# 000000»));

    Над кодом работает на моей стороне. Здесь text TextView, цвет которого необходимо установить.

    Если вы хотите напрямую указать цветовой код, используйте

    Или если вы хотите дать цветовой код из папки цветов, то используйте

    В Adapter вы можете установить цвет текста с помощью этого кода:

    Чтобы установить цвет TextView, TextView.setTextColor(R.color.YOURCOLOR) недостаточно!

    Его нужно использовать так:

    Аналогично, я использовал color.xml :

    Для установки фона TextView например:

    Я получал другой цвет, но когда я использовал приведенный ниже код, я получил фактический цвет.

    Я сделал так: создайте XML-файл под названием Colors in res / values.

    Чтобы получить эти цвета из xml-файла, я использовал этот код: valor – это TextView, а ctx – объект Context. Я не использую его из Activity, а BaseAdapter для ListView. Вот почему я использовал этот объект контекста.

    Для обеспечения значений rgb: text.setTextColor(Color.rgb(200,0,0));
    Для разбора цвета из шестнадцатеричного значения: text.setTextColor(Color.parseColor(«#FFFFFF»));

    Если вы находитесь в адаптере и все еще хотите использовать цвет, определенный в ресурсах, вы можете попробовать следующий подход:

    Итак, попробуйте вот так:

    Я делал это для TextView в ViewHolder для RecyclerView. Я не уверен, почему, но это не сработало для меня в инициализации ViewHolder.

    Но когда я переместил его в onBindViewHolder, он работал нормально.

    Источник

    Читайте также:  Не загружается последняя версия ватсап для андроида
Оцените статью