Android Button Selector Color
September 27, 2015
This page will provide Android button Selector color example. Here we will change button text color for different states. In our selector we are providing a default color and for state focused, there will be different color and for state pressed, the text will show different color.
<selector> Tag
Selector tag facilitates to allow different background or different color for different states. In our example we are using below selector.xml/color_selector.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="#4CAF50"/> <item android:state_focused="true" android:color="#9C27B0"/> <item android:color="#F44336"/> </selector>
android:textColor="@xml/color_selector"
Code for Activity
MainActivity.java
package com.concretepage; import android.app.Activity; import android.os.Bundle; import android.view.Menu; public class MainActivity extends Activity { private final static String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } }
Layout XML
layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:ads="http://schemas.android.com/apk/res-auto" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true"> <LinearLayout android:id="@+id/myLayout" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:fillViewport="true"> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/btn" android:textColor="@xml/color_selector"/> </LinearLayout> </ScrollView>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.concretepage" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14"/> <application android:allowBackup ="false" android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="com.concretepage.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>