Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - Textview change color on changing of state

Tags:

How can I apply color on the various states(focused, pressed, enabled) of the TextView?

I have already referred this: http://developer.android.com/reference/android/content/res/ColorStateList.html , but do not know how can I apply color state list to the TextView? or is there any other way to do so ?

Update:

I want to change the Background color.

like image 795
Paresh Mayani Avatar asked Dec 02 '10 14:12

Paresh Mayani


2 Answers

create xml under res/color dir.

example file name : selector_white_gray.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="@color/Gray"/> <!-- pressed -->
    <item android:color="@color/White"/> <!-- default -->
</selector>

you can add more states. you can use color code like "#ffffff" instead of predefined "@color/White". Becarefull, use android:color not android:drawable. this example changes color of text when pressed on it. set the textColor attribute to selector above.

<TextView
       android:layout_width="wrap_content"
       android:layout_weight="1"
       android:layout_height="wrap_content"
       android:textColor="@color/selector_white_gray"
       android:textSize="18sp" 
       android:textStyle="bold" >
</TextView>
like image 179
Engin OZTURK Avatar answered Sep 22 '22 12:09

Engin OZTURK


Create new a new xml (in the drawable folder). with the color you can specify image for each event state
and you can you can set this xml as you background

if your xml is 'res/drawable/abc.xml' then set background as

android:background="@drawable/abc"

Edited to add color in state xml
our xml, res/drawable/abc.xml

<?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"   
    android:drawable="@color/gray" />
</selector>

Then declare gray in your res\values\strings.xml

<color name="gray">#808080</color>
like image 26
Labeeb Panampullan Avatar answered Sep 22 '22 12:09

Labeeb Panampullan