Как установить цвет текста TextView в коде?
В XML мы можем установить цвет текста с помощью атрибута textColor
, например, android:textColor="#FF0000"
. Но как изменить его путем кодирования?
Я попробовал что-то вроде:
holder.text.setTextColor(R.color.Red);
Где holder
– это просто class, а text
имеет тип TextView
. Красный – это значение RGB (# FF0000), установленное в строках.
Но он показывает другой цвет, а не красный. Какой параметр мы можем передать в setTextColor ()? В документации это говорит int
, но является ли это ссылочным значением ресурса или чем-то еще?
Вы должны использовать:
holder.text.setTextColor(Color.RED);
Для проверки здравомыслия я просто попробовал, потому что у меня был проект в любом случае, и да, это красиво и красно, D
Вы можете использовать различные функции из classа Color
чтобы получить тот же эффект, конечно.
-
Color.parseColor
(Manual) (например, LEX)text.setTextColor(Color.parseColor("#FFFFFF"));
-
Color.rgb
иColor.argb
( Manual rgb ) ( ручной аргумент ) (например, использование Ganapathy )holder.text.setTextColor(Color.rgb(200,0,0)); holder.text.setTextColor(Color.argb(0,200,0,0));
-
И, конечно, если вы хотите определить свой цвет в файле
XML
, вы можете сделать это:#f00 потому что функция
getColor()
устарела 1 , вам нужно использовать ее так:ContextCompat.getColor(context, R.color.your_color);
-
Вы также можете вставить простой HEX, например:
myTextView.setTextColor(0xAARRGGBB);
Если у вас сначала есть альфа-канал, то значение цвета.
Разумеется, конечно же, полное руководство, открытый class Color extends Object .
1 Этот код также был здесь:
textView.setTextColor(getResources().getColor(R.color.errorColor));
Этот метод теперь устарел в Android M. Однако вы можете использовать его из contextCompat в библиотеке поддержки , как показывает пример.
Если вы все еще хотите указать свои цвета в XML-файле:
#f00
Затем укажите его в коде с помощью одного из этих двух методов:
textView.setTextColor(getResources().getColor(R.color.errorColor, getResources().newTheme()));
или
textView.setTextColor(getResources().getColor(R.color.errorColor, null));
Первое, вероятно, предпочтительнее, если вы компилируете на Android M, однако тема, которую вы проходите, может быть нулевой, так что, может быть, вам это проще?
И если вы используете библиотеку «Совместимость», вы можете сделать что-то вроде этого
textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));
И еще один:
TextView text = (TextView) findViewById(R.id.text); text.setTextColor(Color.parseColor("#FFFFFF"));
Вы можете сделать это только из XML-файла.
Создайте файл color.xml
в папке значений:
#ffcc33
Затем в любом XML-файле вы можете установить цвет для текста, используя,
android:textColor="@color/textbody"
Или вы можете использовать этот цвет в файле Java:
final TextView tvchange12 = (TextView) findViewById(R.id.textView2); //Set color for textbody from color.xml file tvchange1.setTextColor(getResources().getColor(R.color.textbody));
Вы можете использовать
holder.text.setTextColor(Color.rgb(200,0,0));
Вы также можете указать, какой цвет вы хотите с помощью Transparency.
holder.text.setTextColor(Color.argb(0,200,0,0));
a для значения Alpha (прозрачное) r-red g-green b-blue
используйте следующий код в layout.xml
Существует множество способов задать цвет в текстовом режиме.
-
Добавить значение цвета в studio res-> values-> colors.xml как
#800080 Теперь задайте цвет в classе xml или actvity, как
text.setTextColor(getResources().getColor(R.color.color_purple)
-
Если вы хотите, чтобы код цвета напрямую использовался ниже Color.parseColor code
textView.setTextColor(Color.parseColor("#ffffff"));
-
Вы также можете использовать RGB
text.setTextColor(Color.rgb(200,0,0));
-
Использование также может использовать прямой hexcode для textView. Вы также можете вставить простой HEX, например:
text.setTextColor(0xAARRGGBB);
-
Вы также можете использовать argb с альфа-значениями.
text.setTextColor(Color.argb(0,200,0,0));
a для альфа (прозрачный) v.
-
И если вы используете библиотеку «Совместимость», вы можете сделать что-то вроде этого
text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));
Обычно я делаю это для любых просмотров:
myTextView.setTextColor(0xAARRGGBB);
где
-
AA определяет альфа (00 для прозрачных, FF для непрозрачных)
-
RRGGBB определяет нормальный код цвета HTML (например, FF0000 для красного).
Если вы планируете использовать setTextAppearance, вы должны знать, что он перепишет цвет текста стилем, унаследованным от темы. Поэтому, если вы хотите использовать оба варианта, установите цвет потом .
Это работает:
textView.setTextAppearance(context, android.R.style.TextAppearance_Medium); textView.setTextColor(Color.RED);
Хотя это приведет к тому, что ваш текст будет, например, белым (для темной темы) или черным (для легкой темы):
textView.setTextColor(Color.RED); textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);
Вопреки этому в XML порядок произволен.
Я считаю, что если вы хотите указать цвет в качестве ресурса (в файле XML ), вам нужно будет указать его значение ARGB (а не просто значение RGB).
Попробуйте изменить значение цвета на #FFFF0000
. Это должно дать вам КРАСНЫЙ.
Использование:
TextView tv = new TextView(this); tv.setTextColor(Color.rgb(285,0,0));
textView.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.colorWhite));
В файле colors.xml
напишите в коде ниже:
#FFFFFF
holder.text.setTextColor(Color.rgb(200,0,0));
или
myTextView.setTextColor(0xAARRGGBB);
Используя адаптер, вы можете установить цвет текста с помощью этого кода:
holder.text_view = (TextView) convertView.findViewById(R.id.text_view); holder.text_view.setTextColor(Color.parseColor("#FF00FF"));
TextView text = new TextView(context); text.setTextColor(Color.parseColor("any hex value of a color"));
Над кодом работает на моей стороне. Здесь text
TextView, цвет которого необходимо установить.
text1.setTextColor(Color.parseColor("#000000"));
если вы хотите напрямую указать цветовой код, используйте
textView.setTextColor(Color.parseColor("#ffffff"));
или если вы хотите дать цветовой код из папки цветов, то используйте
textView.setTextColor(R.color.white);
text.setTextColor(getResource().getColor(R.color.black))
вы создали черный цвет в color.xml.
ИЛИ
text.setTextColor(Color.parseColor("#000000"))
здесь введите желаемый hexcode
ИЛИ
text.setTextColor(Color.BLACK)
вы можете использовать статические поля цвета
textViewStatus.setTextColor(res.getColor(R.color.green));
В Adapter вы можете установить цвет текста с помощью этого кода:
holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view); holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));
Чтобы установить цвет TextView, TextView.setTextColor(R.color.YOURCOLOR)
недостаточно!
Его нужно использовать так:
TextView myText = (TextView) findViewById(R.id.YoutTextViewID); myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);
ИЛИ
myText.setTextColor(Color.parseColor("#54D66A"));
holder.userType.setTextColor(context.getResources().getColor( R.color.green));
Начиная с API 23, getResources().getColor()
устарел.
Используйте это вместо этого:
textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));
Аналогично, я использовал color.xml
:
#ffffff #000000
Для установки фона TextView
например:
textView.setTextColor(R.color.white);
Я получал другой цвет, но когда я использовал приведенный ниже код, я получил фактический цвет.
textView.setTextColor(Color.parseColor("#ff6363"));
Я сделал так: создайте XML-файл под названием Colors в папке res / values.
My Colors.xml:
#cc0000 #4c4cff #000000 #CFDBC5 #ffffff #cccc00 #66b266
Чтобы получить эти цвета из xml-файла, я использовал этот код: valor – это TextView, а ctx – объект Context. Я не использую его из Activity, а BaseAdapter для ListView. Вот почему я использовал этот объект контекста.
valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));
Надеюсь, поможет.
Для обеспечения значений rgb: text.setTextColor(Color.rgb(200,0,0));
Для parsingа цвета из шестнадцатеричного значения: text.setTextColor(Color.parseColor("#FFFFFF"));
Если вы находитесь в адаптере и все еще хотите использовать цвет, определенный в ресурсах, вы можете попробовать следующий подход:
holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));
TextView textresult = (TextView)findViewById(R.id.textView1); textresult.setTextColor(Color.GREEN);
getColor () отменен
Итак, попробуйте так:
tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));
Я делал это для TextView в ViewHolder для RecyclerView. Я не уверен, почему, но это не сработало для меня в инициализации ViewHolder.
public ViewHolder(View itemView) { super(itemView); textView = (TextView) itemView.findViewById(R.id.text_view); textView.setTextColor(context.getResources().getColor(R.color.myColor)); // Other stuff }
Но когда я переместил его в onBindViewHolder, он работал нормально.
public void onBindViewHolder(ViewHolder holder, int position){ // Other stuff holder.textView.setTextColor(context.getResources().getColor(R.color.myColor)); }
Надеюсь, это поможет кому-то.