В XML мы можем установить цвет текста с помощью атрибута textColor
, например android:textColor="#FF0000"
. Но как изменить его путем кодирования?
Я пробовал что-то вроде:
holder.text.setTextColor(R.color.Red);
Где holder
- это просто класс, а text
имеет тип TextView
. Красный - это значение RGB (# FF0000), установленное в строках.
Но он показывает другой цвет, а не красный. Какой параметр мы можем передать в setTextColor()? В документации указано int
, но является ли это ссылочным значением ресурса или чем-то еще?
Ответ 1
Вы должны использовать:
holder.text.setTextColor(Color.RED);
Для проверки работоспособности я просто попробовал, потому что у меня был проект в любом случае, и да, это красиво и красно, D
Вы можете использовать различные функции из класса Color
, чтобы получить тот же эффект, конечно.
-
Color.parseColor
(руководство) (например, использование LEX)
text.setTextColor(Color.parseColor("#FFFFFF"));
-
Color.rgb
и Color.argb
(Manual rgb) (Manual argb) (например, использование Ganapathy)
holder.text.setTextColor(Color.rgb(200,0,0));
holder.text.setTextColor(Color.argb(0,200,0,0));
-
И, конечно, если вы хотите определить свой цвет в файле XML
, вы можете сделать это:
<color name="errorColor">#f00</color>
поскольку функция getColor()
устарела 1 вам нужно использовать ее так:
ContextCompat.getColor(context, R.color.your_color);
-
Вы также можете вставить простой HEX, например:
myTextView.setTextColor(0xAARRGGBB);
Если у вас есть альфа-канал, тогда значение цвета.
Посмотрите полное руководство, конечно, открытый класс Цвет расширяет объект.
1 Этот код также был здесь:
textView.setTextColor(getResources().getColor(R.color.errorColor));
Этот метод теперь устарел в Android M. Однако вы можете использовать его из contextCompat в библиотеке поддержки, как показывает пример.
Ответ 2
Если вы все еще хотите указать свои цвета в своем XML файле:
<color name="errorColor">#f00</color>
Затем укажите его в коде с помощью одного из этих двух методов:
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));
Ответ 3
И еще один:
TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));
Ответ 4
Вы можете сделать это только из файла XML.
Создайте файл color.xml
в папке значений:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="textbody">#ffcc33</color>
</resources>
Затем в любом файле 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));
Ответ 5
Вы можете использовать
holder.text.setTextColor(Color.rgb(200,0,0));
Вы также можете указать, какой цвет вы хотите использовать с прозрачностью.
holder.text.setTextColor(Color.argb(0,200,0,0));
a для альфа (прозрачное) значение r-red g-green b-blue
Ответ 6
используйте следующий код в layout.xml
<TextView android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?
android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />
Ответ 7
Существует множество способов задать цвет в текстовом виде.
-
Добавить значение цвета в studio res- > values- > colors.xml как
<color name="color_purple">#800080</color>
Теперь установите цвет в классе 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));
-
Использование также может использовать прямой hex-код для textView. Вы также можете вставить простой HEX, например:
text.setTextColor(0xAARRGGBB);
-
Вы также можете использовать argb с альфа-значениями.
text.setTextColor(Color.argb(0,200,0,0));
a для Alpha (прозрачный) v.
-
И если вы используете библиотеку "Совместимость", вы можете сделать что-то вроде этого
text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));
Ответ 8
Я обычно делаю это для любых просмотров:
myTextView.setTextColor(0xAARRGGBB);
где
-
AA определяет альфа (00 для прозрачного, FF для непрозрачного)
-
RRGGBB определяет нормальный код цвета HTML (например, FF0000 для красного).
Ответ 9
Если вы планируете использовать 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 порядок произвольный.
Ответ 10
Я считаю, что если вы хотите указать цвет в качестве ресурса (в файле XML), вам нужно будет предоставить его значение ARGB (не просто значение RGB).
Попробуйте изменить значение цвета на #FFFF0000
. Он должен дать вам КРАСНЫЙ.
Ответ 11
Использование:
TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));
Ответ 12
holder.text.setTextColor(Color.rgb(200,0,0));
или же
myTextView.setTextColor(0xAARRGGBB);
Ответ 13
textView.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.colorWhite));
В файле colors.xml
напишите код ниже:
<color name="colorWhite">#FFFFFF</color>
Ответ 14
Используя адаптер, вы можете установить цвет текста с помощью этого кода:
holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));
Ответ 15
text1.setTextColor(Color.parseColor("#000000"));
Ответ 16
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));
Над мной работает код. Здесь text
является TextView, для которого необходимо установить цвет.
Ответ 17
text.setTextColor(getResource().getColor(R.color.black))
вас есть черный цвет в color.xml.
ИЛИ ЖЕ
text.setTextColor(Color.parseColor("#000000"))
здесь введите желаемый шестнадцатеричный код
ИЛИ ЖЕ
text.setTextColor(Color.BLACK)
вы можете использовать статические поля цвета
Ответ 18
В адаптере вы можете установить цвет текста с помощью этого кода:
holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));
Ответ 19
textViewStatus.setTextColor(res.getColor(R.color.green));
Ответ 20
если вы хотите напрямую указать цветовой код, используйте
textView.setTextColor(Color.parseColor("#ffffff"));
или если вы хотите указать цветовой код из папки цветов, используйте
textView.setTextColor(R.color.white);
Ответ 21
Чтобы установить цвет 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"));
Ответ 22
holder.userType.setTextColor(context.getResources().getColor(
R.color.green));
Ответ 23
Начиная с API 23, getResources().getColor()
устарела.
Используйте это вместо:
textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));
Ответ 24
Точно так же я использовал color.xml
:
<color name="white">#ffffff</color>
<color name="black">#000000</color>
Для установки фона TextView
:
textView.setTextColor(R.color.white);
Я получал другой цвет, но когда я использовал приведенный ниже код, я получил фактический цвет.
textView.setTextColor(Color.parseColor("#ff6363"));
Ответ 25
Для обеспечения значений rgb: text.setTextColor(Color.rgb(200,0,0));
Для разбора цвета по шестнадцатеричному значению:
text.setTextColor(Color.parseColor("#FFFFFF"));
Ответ 26
Вы можете использовать textView.setTextColor(Color.BLACK)
для использования любых встроенных цветов класса Color
.
Вы также можете использовать textView.setTextColor(Color.parseColor(hexRGBvalue))
для определения пользовательских цветов.
Ответ 27
Я сделал так:
Создайте XML файл под названием Colors в папке res/values.
My Colors.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="vermelho_debito">#cc0000</color>
<color name="azul_credito">#4c4cff</color>
<color name="preto_bloqueado">#000000</color>
<color name="verde_claro_fundo_lista">#CFDBC5</color>
<color name="branco">#ffffff</color>
<color name="amarelo_corrige">#cccc00</color>
<color name="verde_confirma">#66b266</color>
</resources>
Чтобы получить эти цвета из xml файла, я использовал этот код:
доблесть это TextView, а ctx - объект контекста. Я не использую его из Activity, а BaseAdapter для ListView. Вот почему я использовал этот объект контекста.
valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));
Надеюсь, что это поможет.
Ответ 28
Если вы находитесь в адаптере и все еще хотите использовать цвет, определенный в ресурсах, вы можете попробовать следующий подход:
holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));
Ответ 29
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);
Ответ 30
getColor() отменен
Итак, попробуйте следующим образом:
tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));