Articles → Android → Change The Shape Of Button Based On Its State Using Selectors In Android
Change The Shape Of Button Based On Its State Using Selectors In Android
Example
- Create a button in layout file
Click to Enlarge
- Add 2 shapes with the name myshape and myshape2
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<stroke android:color="#ff0000"></stroke>
<gradient android:endColor="@color/design_default_color_primary"
android:startColor="@color/colorPrimaryDark" android:angle="90"></gradient>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<stroke android:color="@color/colorAccent"></stroke>
<gradient android:endColor="@color/design_default_color_primary"
android:startColor="@color/colorPrimaryDark" android:angle="90"></gradient>
</shape>
- Add a selector (in the same way we have added a shape)
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/myshape"></item>
<item android:drawable="@drawable/myshape2"></item>
</selector>
- Set the background of button to that of selector
Click to Enlarge
Output
Click to Enlarge