Android: динамически изменять цвет фона TextView - PullRequest
9 голосов
/ 11 ноября 2011

У меня есть следующий просмотр текста в моей активности. Я хочу динамически менять цвет фона текстового представления.

Моя проблема в том, что я не хочу получать цвета из файла Resouce или другого метода colors.RED. Я получаю цвета из веб-службы в веб-режиме (т. Е. #FFF, # 000 и т. Д.).

Как я могу передать эти цвета в качестве фона в TextView. Заранее спасибо за ваше время.

<TextView
                android:id="@+id/colorCode"
                android:layout_width="40dp"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true" android:background="#FF0000" android:layout_marginRight="5dp"/>

Ответы [ 5 ]

30 голосов
/ 11 ноября 2011

Ниже приведен фрагмент кода, где txtChannelName является объектом TextView

 txtChannelName.setBackgroundColor(Color.RED);

или

txtChannelName.setBackgroundColor(Color.parseColor("#ffffff"));
6 голосов
/ 30 мая 2013

Вы можете установить цвет с Android или цвет в формате RGB, как это:

TextView txtView = (TextView) findViewById(R.id.yourId);
txtView.setBackgroundColor(Color.parseColor("#AA3456"));

или

txtView.setBackgroundColor(Color.BLUE);
4 голосов
/ 11 ноября 2011

Вы можете попробовать:

String color = "FF0000";   // For example your color is FF0000
TextView txt = new TextView(this);         
txt.setBackgroundColor(Integer.parseInt(color, 16)+0xFF000000);

OR

//This is the most preferrable
txt.setBackgroundColor(Color.parseColor("#FF0000"));    
2 голосов
/ 11 ноября 2011

В своей деятельности вы делаете что-то подобное:

TextView textView = (TextView) findViewById(R.id.colorCode);
int myDynamicColor = Color.parseColor("#FFFF00"); // Here you can pass a string taken from the user or from wherever you want.
textView.setBackgroundColor(myDynamicColor);

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

0 голосов
/ 11 ноября 2011

XML-файл сохранен в res / values ​​/ colors.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <color name="translucent_red">#80ff0000</color>
</resources>

Затем из вашей программы получите доступ к следующим цветам:

Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
textView.setBackgroundColor(color);
...