Android studio как изменить цвет текста
Перейти к содержимому

Android studio как изменить цвет текста

  • автор:

Как изменить цвет текста подсказки в Android Studio?

Я не могу изменить цвет текста подсказки в моем приложении Android на странице входа.

Я использую метод textColorHint, как нашел во многих других примерах в Интернете, но не знаю, что не так с тем, что я делаю.

Поделиться Источник 04 апреля 2017 в 21:08

2 ответа

Используйте атрибут android:textColorHint=»YOUR_COLOR» для установки цвета текста подсказок.

В вашем AutoCompleteTextView , вы используете цвет WHITE для textColor , backgroundTint и textColorHint . Убедитесь, что ваш AutoCompleteTextView цвет фона отличается от WHITE .

Вот рабочий пример для AutoCompleteTextView ., я использовал цвет RED для textColor , цвет GREEN для backgroundTint и цвет BLUE для textColorHint .

OUTPUT

enter image description here

Надеюсь, это поможет вам~

Поделиться 04 апреля 2017 в 22:19

Просто добавьте текст в макет EditText android:textColorHint d-flex justify-content-between»> Поделиться 30 апреля 2017 в 08:45

TextView

Компонент TextView предназначен для отображения текста без возможности редактирования его пользователем, что видно из его названия (Text — текст, view — просмотр).

Находится в разделе Texts.

TextView — один из самых используемых компонентов. С его помощью пользователю удобнее ориентироваться в программе. По сути, это как таблички: Руками не трогать, По газону не ходить, Вход с собаками воспрещен, Часы работы с 9.00 до 18.00 и т.д., и служит для представления пользователю описательного текста.

Для отображения текста в TextView в файле разметки используется атрибут android:text, например:

 android:text="Погладь кота, . " 

Такой подход является нежелательным. Рекомендуется всегда использовать текстовые ресурсы. В будущем эта привычка позволит вам обеспечить многоязыковую поддержку:

 android:text="@string/hello" 

Программная установка текста

Программно текст можно задать методом setText():

 // Инициализируем компонент TextView textView = findViewById(R.id.textView); // задаём текст textView.setText("Hello Kitty!"); // или с использованием текстовых ресурсов textView.setText(R.string.hello); 

Атрибуты

android:textsize размер текста. При установке размера текста используется несколько единиц измерения: px (пиксели), dp, sp, in (дюймы), pt, mm. Для текстов рекомендуется использовать sp: android:textSize=»48sp», аналог — метод setTextSize() android:textstyle стиль текста. Используются константы: normal, bold, italic. Например, android:textStyle=»bold» выводит текст жирным android:textcolor цвет текста. Используются четыре формата в шестнадцатеричной кодировке: #RGB; #ARGB; #RRGGBB; #AARRGGBB, где R, G, B — соответствующий цвет, А — прозрачность (alpha-канал). Значение А, установленное в 0, означает прозрачность 100%.

Для всех вышеперечисленных атрибутов в классе TextView есть соответствующие методы для чтения или задания соответствующих свойств.

Программно установим размеры текста при помощи setTextSize() с различными единицами измерения.

 // 20 DIP (Device Independent Pixels) textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20); // 0.5 inch textView.setTextSize(TypedValue.COMPLEX_UNIT_IN, 0.5f); // 10 millimeter textView.setTextSize(TypedValue.COMPLEX_UNIT_MM, 10); // 30 points textView.setTextSize(TypedValue.COMPLEX_UNIT_PT, 30); // 30 raw pixels textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30); // 30 scaled pixels textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30); 

TextView

По умолчанию у компонентов TextView отсутствует фоновый цвет. Чтобы задать цвет, укажите значение Drawable для атрибута android:background. В качестве значения Drawable может использоваться изображение или XML-представление фигуры, включающий ресурс Drawable (поместить в папку res/drawable).

Программная установка фона

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

Предположим, у вас определён в ресурсах зелёный цвет:

 #337700 

Следующий код будет ошибочным:

 textview.setBackgroundColor(R.color.tvBackground); // не работает 

Нужно так (два варианта):

 textView.setBackgroundResource(R.color.tvBackground); // первый вариант textView.setBackgroundColor(getResources().getColor(R.color.tvBackground)); // второй вариант 

Реагируем на событие onClick

Если вы хотите, чтобы TextView обрабатывал нажатия (атрибут android:onClick), то не забывайте также использовать в связке атрибут android:clickable=»true». Иначе работать не будет!

Многострочный текст

Если вы хотите создать многострочный текст в TextView, то используйте символы \n для переноса строк.

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

  У лукоморья дуб зелёный;\n Златая цепь на дубе том:\n И днём и ночью кот учёный\n Всё ходит по цепи кругом;\n Идёт направо - песнь заводит,\n Налево - сказку говорит. 

Обратите внимание, что в тексте также применяется простое форматирование.

Также перенос на новую строку можно задать в коде:

 textView.setText("Первая строка \nВторая строка \nТретья строка"); 

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

Вы можете управлять интервалом между соседними строчками текста через атрибут android:lineSpacingMultiplier, который является множителем. Установите дробное значение меньше единицы, чтобы сократить интервал или больше единицы, чтобы увеличить интервал между строками.

 android:lineSpacingMultiplier="0.8" 

Бой с тенью

Чтобы оживить текст, можно дополнительно задействовать атрибуты для создания эффектов тени: shadowColor, shadowDx, shadowDy и shadowRadius. С их помощью вы можете установить цвет тени и ее смещение. Во время установки значений вы не увидите изменений, необходимо запустить пример в эмуляторе или на устройстве. В следующем примере я создал тень красного цвета со смещением в 2 пикселя по вертикали и горизонтали. Учтите, что для смещения используются единицы px (пиксели), единицы dp не поддерживаются.

TextView с тенью

Программный эквивалент — метод public void setShadowLayer (float radius, float dx, float dy, int color):

 TextView textShadow = (TextView)findViewById(R.id.hello); textShadow.setShadowLayer( 5f, //float radius 10f, //float dx 10f, //float dy 0xFFFFFFFF //int color ); 

Создание ссылок автоматом

У TextView есть ещё два интересных свойства Auto link (атрибут autoLink) и Links clickable (атрибут linksClickable), которые позволяют автоматически создавать ссылки из текста.

Выглядит это следующим образом. Предположим, мы присвоим элементу TextView текст Мой сайт: developer.alexanderklimov.ru и применим к нему указанные свойства.

При этом уже на этапе разработки вы увидите, что строка адреса сайта после слов Мой адрес: стала ссылкой. Если вы запустите приложение и нажмете на ссылку, то откроется браузер с указанным адресом. Вам даже не придется писать дополнительный код. Аналогично, если указать номер телефона (параметр phone), то запустится звонилка.

У ссылки есть интересная особенность — при длительном нажатии на ссылку появляется диалоговое окно, позволяющее скопировать ссылку в буфер обмена.

Атрибут autoLink позволяет комбинировать различные виды ссылок для автоматического распознавания: веб-адрес, email, номер телефона.

Ссылка в TextView

Цвет ссылки можно поменять через свойство Text color link (XML-атрибут textColorLink), а программно через метод setTextLinkColor().

Программно можно установить ссылки на текст через класс Linkify:

 TextView tvDisplay = (TextView)findViewById(R.id.tvDisplay); String data = "" + "Пример использования Linkify для создания ссылок в тексте.\n" + "\n" + "URL: http://developer.alexanderklimov.ru/ \n" + "Email: [email protected] \n" + "Телефон: (495)-458-58-29 \n" + "Адрес: 10110 ул.Котовского, г.Мышкин \n" + "\n" + "Классно получилось?"; if(tvDisplay != null)

Ссылка в TextView

Кроме константы ALL, можно также использовать Linkify.EMAIL_ADDRESSES, Linkify.MAP_ADDRESSES, Linkify.PHONE_NUMBERS. К сожалению, русские адреса не распознаются. В моём случае индекс был распознан как телефонный номер, а город и улица не стали ссылкой.

В таких случаях придётся самостоятельно добавить ссылки в текстах. Например, определим ссылку в ресурсе:

Присвоим созданный ресурс тексту в TextView и запустим пример. Сам текст будет выглядеть как ссылка, но реагировать не будет. Чтобы исправить данную проблему, добавим код:

 TextView textView = (TextView) findViewById(R.id.textView); textView.setMovementMethod(LinkMovementMethod.getInstance()); 

Ссылки в тексте выглядят не совсем удобными. Есть отдельная библиотека, которая улучшает функциональность. Описание проблем и ссылка на библиотеку есть в статье A better way to handle links in TextView — Saket Narayan.

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

Если вам нужно установить текст полупрозрачным, то не используйте атрибут android:alpha:

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

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

Выделить текст для копирования

По умолчанию, текст в TextView нельзя выделить для копирования. Но в API 11 появилась такая возможность, которая может пригодиться. Делается либо при помощи XML-атрибута android:textIsSelectable, либо через метод setTextIsSelectable().

Добавьте в разметку два компонента TextView и одно текстовое поле EditText для вставки скопированного текста. У первой текстовой метки установим возможность выделения текста декларативно.

Для второго компонента возможность выделения создадим программно.

 TextView secondTextView = (TextView) findViewById(R.id.textView2); secondTextView.setTextIsSelectable(true); 

Сделайте долгий тап на тексте в любом TextView. Увидите стандартные ползунки для выбора длины текста. Скопируйте текст, сделайте длинный тап в EditText и вставьте текст.

Стили

Выводим разделитель под текстом.

Как изменить цвет текста названия приложения в AppCompat.Light.DarkActionBar?

anna_prog

Изменить цвет фона проблем не составляет, а вот как изменить цвет текста уже всю голову сломала и весь инет облазила. Как этот текст правильно называется?

      #0380DA #000000 #03DAC5 #000000  

Отслеживать
задан 12 июл 2020 в 21:58
Аня Стахова Аня Стахова
25 5 5 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

  

Здесь основной цвет и будет отвечать за цвет названия.

Отслеживать
ответ дан 12 июл 2020 в 22:26
1,532 6 6 серебряных знаков 17 17 бронзовых знаков
Это работает. Спасибо!
13 июл 2020 в 10:22

ID заголовка ActionBar скрыт. Это внутренний механизм и доступ к нему не может быть получен обычным путем. Вы можете получить ссылку используя Resources.getIdentifier и после использовать View.findViewById .

int titleId = getResources().getIdentifier("action_bar_title", "id", "android"); Теперь вы можете использовать этот `Id` с `TextView` TextView abTitle = (TextView) findViewById(titleId); abTitle.setTextColor(colorId); 

Отслеживать
ответ дан 12 июл 2020 в 23:15
Sergei Buvaka Sergei Buvaka
10.4k 3 3 золотых знака 12 12 серебряных знаков 35 35 бронзовых знаков

  • java
  • android
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951

Android studio как изменить цвет текста

В приложении Android также можно определять ресурсы цветов (Color). Они должны храниться в файле по пути res/values и также, как и ресурсы строк, заключены в тег . Так, по умолчанию при создании самого простого проекта в папку res/values добавляется файл colors.xml :

  #FFBB86FC #FF6200EE #FF3700B3 #FF03DAC5 #FF018786 #FF000000 #FFFFFFFF  

Цвет определяется с помощью элемента . Его атрибут name устанавливает название цвета, которое будет использоваться в приложении, а шестнадцатеричное число — значение цвета.

Для задания цветовых ресурсов можно использовать следующие форматы:

  • #RGB (#F00 — 12-битное значение)
  • #ARGB (#8F00 — 12-битное значение с добавлением альфа-канала)
  • #RRGGBB (#FF00FF — 24-битное значение)
  • #AARRGGBB (#80FF00FF — 24-битное значение с добавлением альфа-канала)

Чтобы не трогать и не портить данный файл, определим свой новый файл ресурсов и для этого добавим в папку res/values новый файл ресурсов, который назовем my_colors.xml .

Использование цвета в Android Studio и ресурсы color

Изменим файл my_colors.xml , добавив в него пару цветов:

  #A0EAE1 #00695C  

Применим цвета в файле activity_main.xml :

С помощью атрибута android:textColor устанавливается цвет текста в TextView, а атрибут android:background устанавливает фон TextView. В качестве значения они используют цвет, например, в том же шестнадцатеричном формате. Для получения самого цвета после «@color/» указывается имя ресурса.

Использование цвета в Android и Java и ресурсы color

Также можно использовать цветовые ресурсы в коде MainActivity:

package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; import android.content.res.Resources; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); // получаем ресурсы Resources resources = getResources(); int textColor = resources.getColor(R.color.textViewFontColor, null); int backgroundColor = resources.getColor(R.color.textViewBackColor, null); ConstraintLayout constraintLayout = new ConstraintLayout(this); ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams (ConstraintLayout.LayoutParams.WRAP_CONTENT , ConstraintLayout.LayoutParams.WRAP_CONTENT); layoutParams.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID; layoutParams.topToTop = ConstraintLayout.LayoutParams.PARENT_ID; TextView textView = new TextView(this); textView.setText("Hello Android"); textView.setTextSize(32); // используем ресурсы color textView.setTextColor(textColor); textView.setBackgroundColor(backgroundColor); textView.setLayoutParams(layoutParams); constraintLayout.addView(textView); setContentView(constraintLayout); >>

Для получения цвета из ресурсов применяется метод resources.getColor() , который принимает два параметра. Первый параметр — идентификатор ресурса, цвет которого надо получить. Второй параметр представляет тему. Но поскольку в данном случае тема не важна, для этого параметра передаем значение null

Следует учитывать, что метод resources.getColor() с двумя параметрами, который использован выше, доступен, если для минимальная версия Android не ниже Android 6.0 (или Android 23). Однако минимальная версия Android ниже, то можно использовать устаревшую версию с одним параметром:

int textColor = resources.getColor(R.color.textViewFontColor); // вместо //int textColor = resources.getColor(R.color.textViewFontColor, null);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *