2011-11-11 12 views
7

Mam następujący widok tekstowy w mojej aktywności. Chcę dynamicznie zmieniać kolor tła widoku tekstowego.Android: dynamicznie zmieniaj kolor tła tekstu w tle

Moim problemem jest to, że nie chcą, aby uzyskać kolory z pliku Resouce lub innej metody colors.RED. Dostaję kolory z webservie w trybie bezpieczeństwa sieci (tj. #FFF, # 000 itd.).

Jak mogę przekazać te kolory jako tło do TextView. Z góry dzięki za poświęcony czas.

<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"/> 

Odpowiedz

26

Poniżej fragment może pomóc gdzie txtChannelName Przedmiotem TextView

txtChannelName.setBackgroundColor(Color.RED); 

lub

txtChannelName.setBackgroundColor(Color.parseColor("#ffffff")); 
+1

Dzięki ale wiedziała już o tej metodzie. Wspomniałem również w moim pytaniu na temat // kolorów z pliku Resouce lub innych metod colors.RED // Chcę wiedzieć, czy mogę przekazać #FFF jako dane wejściowe do koloru tła widoku tekstowego ??. –

+0

zaktualizowałem odpowiedź, sprawdzam, czy – ingsaurabh

+0

dziękuje, że działa :) –

2

W swojej działalności można zrobić coś takiego:

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

Mam nadzieję, że to pomoże.

+0

To jest wot, o którym mówię :) –

4

Można spróbować:

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

LUB

//This is the most preferrable 
txt.setBackgroundColor(Color.parseColor("#FF0000"));  
0

plik XML zapisany w RES/wartości/colors.xml:

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

Następnie z programu dostęp do tych barw jak następujący:

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

yow można ustawić kolor z android lub koloru w formacie RBG tak:

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

lub:

txtView.setBackgroundColor(Color.BLUE);