it-swarm.com.ru

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

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

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

holder.text.setTextColor(R.color.Red);

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

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

503
Vikas

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

holder.text.setTextColor(Color.RED);

Для проверки работоспособности, я просто попробовал это, потому что у меня все равно был открыт проект, и да, он Хороший и красный; D


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

  • Color.parseColor(Вручную) (как Лекс использует)

    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);
    

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

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


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

textView.setTextColor(getResources().getColor(R.color.errorColor));

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

1157
Nanne

Если вы все еще хотите указать свои цвета в своем 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, однако тема, которую вы передаете, может быть нулевой, так что, может быть, это проще для вас?

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

textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));
134
xbakesx

И еще один:

TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));
45
LEX

Вы можете сделать это только из файла 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));
37
newday

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

holder.text.setTextColor(Color.rgb(200,0,0));

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

holder.text.setTextColor(Color.argb(0,200,0,0));

a для альфы (прозрачное) значение r-красный g-зеленый b-синий

27
Ganapathy C

Есть много разных способов установить цвет в текстовом представлении.

  1. Добавьте значение цвета в студии res-> values-> colors.xml как

    <color name="color_purple">#800080</color>
    

    Теперь установите цвет в классе xml или actvity как

    text.setTextColor(getResources().getColor(R.color.color_purple)
    
  2. Если вы хотите дать цветовой код, используйте ниже код Color.parseColor

    textView.setTextColor(Color.parseColor("#ffffff"));   
    
  3. Вы также можете использовать RGB

    text.setTextColor(Color.rgb(200,0,0));
    
  4. Использование также может использовать прямой шестнадцатеричный код для textView. Вы также можете вставить обычный HEX, например, так:

    text.setTextColor(0xAARRGGBB);
    
  5. Вы также можете использовать argb с альфа-значениями.

       text.setTextColor(Color.argb(0,200,0,0));
    

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

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

       text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));
    
15
Rank

используйте следующий код в 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" />
14
Chinna

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

myTextView.setTextColor(0xAARRGGBB);

где

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

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

9
A.W

Если вы планируете использовать 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 порядок произвольный.

8
Robin Gawenda

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

Попробуйте изменить значение цвета на #FFFF0000. Это должно дать вам красный.

6
Arnab Chakraborty
holder.text.setTextColor(Color.rgb(200,0,0));

или же

myTextView.setTextColor(0xAARRGGBB);
5
Yash Patil

Использование:

TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));
5
Talha
textView.setTextColor(ContextCompat.getColor(getApplicationC‌​ontext(),R.color.col‌​orWhite)); 

В файле colors.xml введите следующий код:

<color name="colorWhite">#FFFFFF</color>
5
Kaushik Chatterjee
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));

Выше код работает на моей стороне. Здесь text - это TextView, для которого необходимо установить цвет.

4
Evon Technology

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

holder.text_view = (TextView) convertView.findViewById(R.id.text_view);
holder.text_view.setTextColor(Color.parseColor("#FF00FF"));
4
Hiren Patel
text1.setTextColor(Color.parseColor("#000000"));
4
Ravina Bhavsar

text.setTextColor(getResource().getColor(R.color.black)) вы создали черный цвет в color.xml.

OR

text.setTextColor(Color.parseColor("#000000")) здесь введите желаемый hexcode

OR

text.setTextColor(Color.BLACK) вы можете использовать статические поля цвета

4
Nitish

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

holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view);
holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF"));
1
user2285778

Начиная с API 23, getResources().getColor() устарела.

Используйте это вместо:

textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));
1
PJ2104

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

textView.setTextColor(Color.parseColor("#ffffff"));

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

textView.setTextColor(R.color.white);
1
reshma

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

Это должно быть использовано так -

TextView myText = (TextView) findViewById(R.id.YoutTextViewID);

myText.setTextColor(getResources().getColor(R.color.YOURCOLOR);

OR

myText.setTextColor(Color.parseColor("#54D66A"));
1
IntelliJ Amiya
holder.userType.setTextColor(context.getResources().getColor(
                    R.color.green));
1
Harish Gyanani
   textViewStatus.setTextColor(res.getColor(R.color.green));
1
zudo1337

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

0
Comrade

Точно так же я использовал color.xml:

<color name="white">#ffffff</color>
    <color name="black">#000000</color>   

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

textView.setTextColor(R.color.white);

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

textView.setTextColor(Color.parseColor("#ff6363"));
0
Raj Sharma

Вы можете использовать textView.setTextColor(Color.BLACK), чтобы использовать любой из встроенных цветов класса Color.

Вы также можете использовать textView.setTextColor(Color.parseColor(hexRGBvalue)) для определения пользовательских цветов.

0
shravs

Я сделал это следующим образом: создать 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-файла, я использовал этот код: valor это TextView, а ctx это объект Context. Я использую его не из Activity, а через BaseAdapter для ListView. Вот почему я использовал этот объект контекста.

valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));

Надеюсь, поможет.

0
Cristiano Guerra

Я делал это для 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));
}

Надеюсь, это кому-нибудь поможет.

0
IsaiahJ

getColor () устарела

Так что попробуйте так:

 tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));
0
kgandroid

Попробуй это:

textView.setTextColor(getResources().getColor(R.color.errorColor, null));
0
mohamad sheikhi

Попробуй это:

TextView textview = (TextView) findViewById(R.id.textview );
textview .setTextColor(Color.parseColor("#85F85F"));
0
mohamad sheikhi
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);
0
Pedro Lobito

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

holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));
0
Aleks Nine